Wpis z mikrobloga

Robię endpoint, który przyjmuje postem tablicę obiektów i zapisuje je w bazie danych. Obiekt może być negatywnie zwalidowany np. zly format numeru telefonu. Jak powinna wyglądać zwrotka, gdy np 9 rekordów zostało dodanych a 1 nie. Tzn jaki 1) kod http 2) format odpowiedzi. Czy dobrą opcją jest odrzucać całe żądanie, gdy choć jeden obiekt jest nieprawidłowy?

#programowanie #php
  • 4
@MartinoBlankuleto: Przetwarzanie wielu rzeczy w jednym endpoint'cie API to zawsze problem. No ale jak już masz takie rozwiązanie, to lepiej odrzucić całość, niż w to brnąć.

Chociaż jak zwykle odpowiedź wciąż brzmi "to zależy". Np. w FCM można wysyłać wiele pushy jednocześnie, ale tam jest przetwarzanie asynchroniczne, więc potem sam sobie sprawdzasz, który push poszedł poprawnie, a który nie.

400 Bad request,


@Summar: Raczej 422 Unprocessable Entity.
400 używa
422 i w responsie jakaś array-ka z errorami walidacji, żeby było wiadomo co user ma poprawić, żeby request przeszedł następnym razem. I odrzucasz oczywiście całość. Częściowe przetworzenie requestu i zapis części danych = spoko dodatkowej pracy po stronie klienta.