简体   繁体   English

如何在DRF中更新外部api的响应

[英]How to update response from external api in DRF

I am dealing with an assignment, which needs to request a third party API and take a few bites of the response and update their keys and render as DRF response. 我正在处理一项任务,该任务需要请求第三方API并采取一些响应并更新其密钥并呈现为DRF响应。

Can this be achieved via serializers? 这可以通过序列化器来实现吗?

Here what I am doing. 这就是我在做什么。

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

I think you can try doing something like this. 我想你可以尝试做这样的事情。

Serializer will respect only the fields which are defined in it, others it'll ignore. Serializer只会尊重其中定义的字段,而其他人则会忽略它们。

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)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM