Wyłączenie automatycznej walidacji modelu podczas generowania zestawienia do pliku Excel

0

Witam.
Klient zażyczył sobie, aby była możliwość zapisania widoku tabeli do pliku Excel. Problem polega na tym, że narobił takiego bałaganu w bazie danych z powodu źle wypełnionych danych (długa historia, nie chce mi się pisać dlaczego), że teraz próbując listę danych wysłać do API dostaje błędy, że pola są wymagane

{"errors":
{"[0].BuildingNumber":["The BuildingNumber field is required."],"[2].Street"....},
"type":"https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title":"One or more validation errors occurred.",
"status":400,"traceId":"|a944d559-40369e3bc7e1f650."}

Jak, metodą POST, przesłać dane do API pomijając walidację? Ja nie zapisuje niczego do bazy, chce tylko wygenerować plik Excel.

0

Nie jestem pewien czy głupoty nie napiszę, ale to nie jest tak ,że po to się pisze walidację by nie dało się wysyłać błędnych danych, a co za tym idzie nie da się tego obejść z poziomu zapytania? W mojej opinii trzeba by było wyłączyć walidację w api. Ale nie jestem pewien czy dobrze zrozumiałem problem.

0

Spodziewałem się, że będzie taka odpowiedź. Dane, które próbuje wrzucić są pobierane z Comarch Optima, a nie wpisywane ręcznie na formularzu. Po stu telefonach z pretensjami, że "nie wpisuje się z Optimy do panelu" zwyczajnie olałem sprawdzanie czegokolwiek i poinformowałem klienta o możliwych błędach jeśli źle wpiszę w Optimie, które zaakceptował. Nie przypuszczałem, że odbije się to na mnie w taki sposób.

[HttpPost]
public IActionResult PrintCustomersTableToExcel([FromBody] IEnumerable<CustomerDTO> reportData)

Nie rozumiem dlaczego waliduje. Bo to jest zrobione metodą POST?

0

Nie rozumiem dlaczego waliduje. Bo to jest zrobione metodą POST?

Nie, bo jest FromBody i wszystkie ApiController mają automatycznie walidację: https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-3.1#automatic-http-400-responses ale powiem szczerze, że nie wiem jak to wyłączyć dla pojedynczej akcji - chyba musisz sobie napisać własny walidator, który przyjmie wszystko - podobnie do https://stackoverflow.com/a/50520389

1 użytkowników online, w tym zalogowanych: 0, gości: 1