Что вернуть, если ничего не надо? 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 — сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения.
Вернуться на верх