Что вернуть, если ничего не надо? Django
У меня есть обработчик. Я получаю данные, сохраняю их, а что вернуть? Как будет правильнее? Может просто пустой HttpResponse, или что?
views.py
def add_mail_to_subscriptions(request):
body = request.body.decode('utf-8')
email = json.loads(body)['email']
user = SubscribedEmail.objects.filter(email=email)
if not user.exists():
SubscribedEmail.objects.create(email=email)
Нужно вернуть HTTP status в ответе
from django.http import HttpResponse
def add_mail_to_subscriptions(request):
...
return HttpResponse(status=200)
Какой именно зависит от того, как вы проектируете API. В вашем случае, похоже, правильно будет 204 или 200.
Вот цитата с сокращениями из вики:
- 200 OK — успешный запрос. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения.
- 201 Created — в результате успешного выполнения запроса был создан новый ресурс. При обработке запроса новый ресурс должен быть создан до отправки ответа клиенту, иначе следует использовать ответ с кодом 202.
- 202 Accepted — запрос был принят на обработку, но она не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.
- 204 No Content — сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения.