Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在服务器端的Django REST中使用API,并在客户端使用API_Django_Angular_Api_Django Rest Framework - Fatal编程技术网

在服务器端的Django REST中使用API,并在客户端使用API

在服务器端的Django REST中使用API,并在客户端使用API,django,angular,api,django-rest-framework,Django,Angular,Api,Django Rest Framework,我有一个使用API客户端的Angular应用程序。因为这样做是一种不好的做法(我不想公开我的API凭据),所以我决定在myapp发展壮大之前分为后端/前端。 我成功地将Angular应用程序实现到Django REST框架应用程序中,一切正常。 但是现在我需要更改我的API逻辑,让DRF使用外部API 我有: 角度扩展数据 现在我有: Django/角度扩展数据 我需要的是: 角度Django-ext数据 但我对如何实现这一目标感到非常困惑。我有在DRF中设置API端点的经验,但仅适用于DRF中

我有一个使用API客户端的Angular应用程序。因为这样做是一种不好的做法(我不想公开我的API凭据),所以我决定在myapp发展壮大之前分为后端/前端。 我成功地将Angular应用程序实现到Django REST框架应用程序中,一切正常。 但是现在我需要更改我的API逻辑,让DRF使用外部API

我有:

角度扩展数据

现在我有:

Django/角度扩展数据

我需要的是:

角度Django-ext数据

但我对如何实现这一目标感到非常困惑。我有在DRF中设置API端点的经验,但仅适用于DRF中模型的数据。我也知道如何使用Django中的API。 但是我如何链接两个API调用呢? 我是否必须创建一个模型来存储查询和响应? 即使返回的数据始终是json,我也需要编写序列化程序吗? 既然外部API的数据可用,我的前端将如何工作


我需要的是有人向我解释这项任务的模式。

假设您有一个FBV映射到django中的URL,如下所示:

url:/api/animals/

@根据需要添加装饰器
定义视图(请求,键=无):
data=requests.get(f'{API_URL}/{key}?API_key={API_key}')#从ext提供程序获取数据
json_数据=…#转换为json或执行其他操作
返回json#U数据#将数据返回到前端
然后在前端,即Angular应用程序中,您可以对django应用程序的
/api/anies/cow
url执行get请求,并从外部提供商检索cow的数据,而无需公开api_密钥

因此,流程如下所示:

Angular向Django请求数据,Django从外部提供程序获取该数据,如果需要,进行一些数据处理,然后将该数据返回给Angular。您不必在数据库中存储任何内容(但您当然可以这样做,例如记录内容,这是可选的)