我正在从前端接收JSON POST请求并将其存储在数据库中-这是后端的标准行为。
是否可以将相同的数据(或验证后的部分数据)与另一个POST请求一起发送到不受我管理的外部API?如果是这样,我认为可以通过扩展create
方法来实现-我正确吗?在后端收到该请求后,如何触发向该第三方API发送请求?
您知道任何例子吗?
答案 0 :(得分:1)
您可以创建(覆盖)自定义的“创建”视图方法,将调用添加到外部API(如果外部API是REST,则“请求”是一个很好的工具)。
建立一个新的HTTP连接(外部)会影响端点响应速度,如果外部服务太慢,则会产生超时,因此我建议使用异步机制(celery task worker或async function)进行外部api调用并确保检索循环和超时。
答案 1 :(得分:1)
是的,您可以使用pip install requests
来完成。这意味着您的api正在充当代理。
from rest_framework import Response
import requests
def api_view(request):
external_api_url = 'https://example.com/api/endpoint/'
data = request.POST
res = requests.post(external_api_url, data)
return Response(res.json())
答案 2 :(得分:1)
使用请求库,您可以将数据发布到外部API
例如
import requests
request_type = "POST"
data = {"email":"email", "name": "name"}
api_url = "https://external-api.com/api/post/"
response = requests.request(request_type, api_url, data=data)