我正在从外部来源进行一些API调用,但想使其动态化,而不是在提供的DRF UI中将引用号手动放入我的视图中。
我想要的是在我的DRF用户界面中,我应该有一个字段,当我输入参考编号时,我应该从API获取响应,我已经成功地手动完成了此操作,但我想使其在DRF用户界面中动态。
我还希望在DRF UI中获得更好格式的JSON响应。下面的图像可以更好地解释我的意思
Views.py
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
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中获取reference_id,则必须定义一个序列化器并从中获取值,或者可以定义一个URL模式,该模式要求一个参考ID。
你可以这样做
在urls.py中
urlpatterns = [
path('paystack/<str:reference_id>', Paystack.as_view(), name='paystack'),
]
在您的views.py中
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句