Создать пользовательский шаблон ответа Django API - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь построить структуру ответа с помощью django rest framework и у меня есть стандартное тело шаблона:

Тело ответа должно иметь следующие параметры:

  • код_состояния: он должен принимать код состояния и предоставлять его в качестве ответа. объект
    • Недействительные записи: это недействительные записи, сделанные пользователем в форме, и запрос не обработал его.
    • Сообщение: должно предоставить сообщение об успехе / неудаче с подробной информацией
    • Данные: данные отклика Json для внешнего интерфейса
    • Все, что пусто, не должно идти с телом ответа.

1 Ответ

0 голосов
/ 05 ноября 2018

Вы, вероятно, подходите к проблеме неправильно. Вы должны использовать код состояния для передачи информации об успехе / неудаче, а затем передавать ошибки в данных.

Если вы используете django rest framework, валидация может быть выполнена сериализаторами: https://www.django -rest-framework.org / апи-гид / сериализаторов /

И тогда ваш взгляд выглядит, например, как

 def post(self, request):
    serializer = YourSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save(**serializer.validated_data) 
        return Response(status=status.HTTP_201_CREATED)
    else:
        return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)

И тогда ошибки в данных будут выглядеть так:

{
"email": [
    "Enter a valid email address."
],
"first_name": [
    "This field is required."
],
"last_name": [
    "This field is required."
],
"password": [
    "This field is required."
]

}

...