Почему я получаю ошибку Unsupported media type "application/json" в запросе?
Я использую Postman для тестирования api. Мои локальные модульные тесты проходят. Но когда я использую тот же запрос в Postman, я получаю
{
"errors": [
{
"detail": "Unsupported media type \"application/json\" in request.",
"status": "415",
"source": {
"pointer": "/data"
},
"code": "unsupported_media_type"
}
]
}
Используя точку останова, получаю такой результат при распаковке request.data
в View.
Я убедился, что установил application/json
в заголовке Content-Type, и даже указал его в качестве парсера. Я все равно получаю ошибку. Можете ли вы понять, почему?
Часть кода, где все ломается:
class ProvisionCustomerView(APIView):
permission_classes = [IsAuthenticated]
serializer_class = ProvisionCustomerSerializer
def post(self, request):
customer_data = request.data
При использовании postman, request.data возвращает:
*** rest_framework.exceptions.UnsupportedMediaType: Unsupported media type "application/json" in request.
Хотя это прекрасно работает в модульном тесте.
Оказалось, что причина в том, что я должен был использовать application/vnd.api+json
в заголовке Content-Type
. Один из членов команды переназначил переменную. Совет: дважды проверьте свой файл настроек!