Używamy Flaska dla jednego z naszych API i zastanawiałem się, czy ktoś wie, jak zwrócić odpowiedź HTTP 201?
W przypadku błędów takich jak 404 możemy zadzwonić:
from flask import abort
abort(404)
Ale za 201 dostaję
LookupError: brak wyjątku dla 201
Czy muszę utworzyć własny wyjątek, taki jak ten w dokumentach?
python
flask
httpresponse
ingh.am
źródło
źródło
return '', 201
Odpowiedzi:
Możesz o tym przeczytać tutaj.
źródło
page.html
... To nie zadziała samo.Możesz użyć Response, aby zwrócić dowolny kod stanu http.
źródło
Jak nie sugeruje, wyślij kod statusu w instrukcji return i jeśli przechowujesz go w jakiejś zmiennej, takiej jak
i używając
niż czas upewnij się, że jego typ to int nie str. ponieważ miałem do czynienia z tym małym problemem, również tutaj znajduje się lista kodów statusu przestrzeganych na całym świecie http://www.w3.org/Protocols/HTTP/HTRESP.html
Mam nadzieję, że to pomoże.
źródło
Możesz to zrobić
jeśli chcesz zwrócić dane JSON w odpowiedzi wraz z kodem błędu Możesz przeczytać o odpowiedziach tutaj i tutaj po szczegóły API make_response
źródło
W swoim kodzie kolby najlepiej byłoby określać typ MIME tak często, jak to możliwe:
...itp
źródło
możesz również użyć flask_api do wysłania odpowiedzi
możesz znaleźć odniesienie tutaj http://www.flaskapi.org/api-guide/status-codes/
źródło
W zależności od tego, w jaki sposób API jest tworzone, normalnie za pomocą 201 (utworzonego) można zwrócić utworzony zasób. Na przykład, gdyby tworzył konto użytkownika, zrobiłbyś coś takiego:
Zwróć uwagę, że numer postfix to zwrócony kod statusu.
Alternatywnie możesz wysłać wiadomość do klienta, taką jak:
źródło
W moim przypadku musiałem połączyć powyższe, aby zadziałało
źródło
Tak więc, jeśli używasz
flask_restful
Package for API, zwracanie 201 będzie podobnegdzie
data
powinna być dowolna wartość hashable / JsonSerialiable, np. dict, string.źródło