我有一个使用API客户端的Angular应用程序。由于这样做是不好的做法(我不想公开我的API凭据),因此我决定在myapp扩展之前拆分为后端/前端。我成功地将Angular实现到Django REST框架应用中,并且一切正常。但是现在我需要更改我的API逻辑,并让DRF使用外部API
我有:
角<-API-> ext数据
我现在有:
Django / Angular <--- API ---> ext数据
我需要的:
角<-API ---> Django <-API-> ext数据
但是我对如何实现它感到非常困惑。我有在DRF中设置API端点的经验,但仅适用于DRF中模型的数据。我也知道如何在Django中使用API。但是,如何链接两个API调用?我是否必须创建一个模型来存储查询,然后存储响应?即使返回的数据始终是json,我也需要编写序列化程序吗?现在,来自外部API的数据将如何供我的前端使用?
我需要有人向我解释此任务的模式。
假设您有一个FBV映射到Django中的URL,如下所示:
url: /api/animals/<str:key>
@add_decorators_as_needed
def animals_view(request, key=None):
data = requests.get(f'{API_URL}/{key}?api_key={API_KEY}') # grab data from ext provider
json_data = ... # convert to json or do other manipulations
return json_data # return data to the frontend
然后,在前端的Angular应用中,您可以执行/api/animals/cow
对django应用的此URL的get请求,并从外部提供程序检索母牛的数据,而无需暴露API_KEY。
因此流程如下所示:
Angular向Django请求数据,Django从外部提供程序获取数据,必要时进行一些数据处理,然后将数据返回给Angular。您不必在数据库中存储任何内容(但是您可以这样做,例如记录日志,这是可选的)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句