【问题标题】:How to update response from external api in DRF如何在 DRF 中更新来自外部 api 的响应
【发布时间】:2019-05-24 19:21:15
【问题描述】:
我正在处理一项任务,该任务需要请求第三方 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
【问题讨论】:
标签:
python
serialization
django-rest-framework
【解决方案1】:
我认为你可以尝试做这样的事情。
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)