首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DjangoRestFramework中API端点数据的动态请求

DjangoRestFramework中API端点数据的动态请求
EN

Stack Overflow用户
提问于 2020-10-25 16:00:42
回答 1查看 281关注 0票数 0

我正在从外部源进行一些API调用,但希望使其动态化,而不是手动将引用号放在我提供的DRF中的视图中。

我想要的是,在我的DRF UI中,我应该有一个字段,当我输入一个引用号时,我应该从API获得响应,我正在手动地完成这个任务,但是我想让它从DRF UI中动态化。

我还想在我的DRF中获得一个更好的格式化JSON响应。下面是一张图片,以更好地解释我的意思

Views.py

代码语言:javascript
复制
class Paystack(APIView):
    def get(self, request):
        url = "https://api.paystack.co/transaction/verify/{{REFERENCE_NO}}"
        payload = {}
        files = {}
        headers = {
            'Authorization': 'Bearer SECRET_KEY',
            'Content-Type': 'application/json'
        }

        response = requests.request("GET", url, headers=headers, data= payload, files=files)
        return Response(response)

    def post(self, request):
        url = "https://api.paystack.co/transaction/verify/{{REFERENCE_NO}}"
        payload = {}
        files = {}
        headers = {
            'Authorization': 'Bearer SECRET_KEY',
            'Content-Type': 'application/json'
        }

        response = requests.request("GET", url, headers=headers, data= payload, files=files)
        return Response(response)

urls.py

代码语言:javascript
复制
from django.urls import path, include
from .views import *
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register('paystack', Paystack, basename='paystack')

urlpatterns = [
    path('paystack/', Paystack.as_view(), name='paystack'),
]

现在,我的DRF UI看起来像这样,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-25 16:58:56

如果您希望能够在DRF UI中获取reference_id,您必须定义一个序列化程序并从中捕获值,或者,您可以定义一个请求引用ID的URL模式。

你能做到的

In urls.py

代码语言:javascript
复制
urlpatterns = [
path('paystack/<str:reference_id>', Paystack.as_view(), name='paystack'),

]

In views.py

代码语言:javascript
复制
class Paystack(APIView):

    def get(self, request, reference_id):
        url = f"https://api.paystack.co/transaction/verify/{reference_id}"
        payload = {}
        files = {}
        headers = {
            'Authorization': 'Bearer SECRET_KEY',
            'Content-Type': 'application/json'
        }

        response = requests.request("GET", url, headers=headers, data= payload, files=files)
        return Response(response)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64525767

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档