python - 如何在 DRF 中更新来自外部 api 的响应
问题描述
我正在处理一项任务,该任务需要请求第三方 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
解决方案
我认为你可以尝试做这样的事情。
序列化程序将仅尊重其中定义的字段,其他字段将被忽略。
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)
推荐阅读
- ios - 如何从应用商店发布赞比亚国家的 iOS 应用
- wordpress - HTTPS 图片请求在 Wordpress 中变成 HTTP 请求
- asp.net - 如何在每次单击按钮时不将迭代器重置为 0 来遍历数组?
- excel - 如何使用vba将单列从word复制到预先存在的excel表?
- regex - 301 重定向 www.domain 到 domain.com
- vscode-settings - VSCODE:我如何默认启用“任务:允许文件夹中的自动任务”?
- swift - 迅速减少双倍
- php - 从特定表中提取链接
- postgresql - PostgreSql 短语to_tsquery 很慢
- python - 如何在测试执行期间找到参数化测试的测试 ID?