Django rest框架拉入外部json数据

Posted

技术标签:

【中文标题】Django rest框架拉入外部json数据【英文标题】:Django rest framework pull in external json data 【发布时间】:2015-11-15 22:25:07 【问题描述】:

如果我想将外部 api 引入 django REST 框架。最好的方法是什么?我已经有了 json,但是如何为此构造一个只读 api 端点。我正在为应用服务器使用 REST 框架,并使用外部 api 处理身份验证,但我想通过 REST 框架传递 json 数据。

【问题讨论】:

你能说得更具体点吗?这有点含糊,很难提出任何建议 是***.com/questions/16865986/…的副本吗? 【参考方案1】:

你可以如下使用。

class MyApi(generics.GenericAPIView):

    def get(self, request, *args, **kwargs):
        external_api_url = "" 
        res = urllib.urlopen(external_api_url).read()
        data = json.loads(res)
        return Response(data, status=HTTP_200_OK)

【讨论】:

虽然此答案可能是正确且有用的,但如果您 include some explanation along with it 解释它如何帮助解决问题,则最好。如果有更改(可能不相关)导致它停止工作并且用户需要了解它曾经是如何工作的,这在未来变得特别有用。【参考方案2】:

对于只读端点,您可以使用以下代码:

from reset_framework import viewsets
from rest_framework.response import Response

class ExtenalViewSet(viewsets.ReadOnlyModelViewSet):

    def get(self, request, *args, **kwargs):
        api_url = "/api/externalurl/"
        res = urllib.urlopen(api_url).read()
        data = json.loads(res)
        return Response(data)

【讨论】:

以上是关于Django rest框架拉入外部json数据的主要内容,如果未能解决你的问题,请参考以下文章

Json解析django rest框架

使用 Django REST 框架序列化程序将 JSON 请求保存到数据库

无法使用 Django REST 框架从多个选择元素中发布 JSON 数据

如何在 Django Rest Framework 中检索外部 JSON 文件以用于 React?

Django Rest 框架拒绝接受多部分表单数据

Django rest框架将POST数据分配给特定用户