Как обновить ответ от внешнего API в DRF - PullRequest
0 голосов
/ 24 мая 2019

Я имею дело с назначением, которое требует запроса стороннего API, получения нескольких фрагментов ответа, обновления их ключей и рендеринга в виде ответа DRF.

Может ли это быть достигнуто с помощью сериализаторов?

Вот что я делаю.

response = BooksService().get_books()
transformed_data = self.transform_data(response)
return Response(transformed_data)

def transform_data(response):
    data = response.json()    
    required_data = {
        key_i_need_1 = data.get(KeyINeed1)
        key_i_need_2 = data.get(KeyINeed2)
        ...
    }
    return required_data

1 Ответ

0 голосов
/ 25 мая 2019

Я думаю, вы можете попробовать сделать что-то подобное.

Сериализатор будет уважать только те поля, которые в нем определены, другие будут игнорироваться.

class ResponseSerializer(Serializer):
    required_field1 = serializers.FieldType()
    required_field2 = serializers.FieldType()
    required_field3 = serializers.FieldType()
    required_field4 = serializers.FieldType()
    required_field5 = serializers.FieldType()

    class Meta:
        fields = (required_field1, required_field2, required_field3, required_field4, required_field5)


def view():
    response = requests.get(external_api).json()
    modified_response = ResponseSerializer(data=response)
    return Response(modified_response.data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...