Django REST Swagger:Swagger 未检测到列表和检索函数
Django REST Swagger: List and Retrieve functions are not detected by Swagger
我使用的是 django-rest-swagger 版本:2.0.5 和 django-rest-framework 版本:3.4.6。
我意识到当我使用 list
或 retrieve
函数时,Swagger 无法将它们检测为新端点。
我的 views.py 文件中有以下代码:
from rest_framework.viewsets import ViewSet
class OrdersViewSet(ViewSet):
lookup_field = 'uuid'
def list(self, request: Request, *args, **kwargs):
try:
changeset = OrderSyncHelper().get_order_list_data()
return Response(status=HTTP_200_OK, data=changeset)
except (KeyError, ValueError) as e:
return Response(status=HTTP_400_BAD_REQUEST, data=e.args)
def retrieve(self, request: Request, uuid: str, *args, **kwargs):
try:
changeset = OrderSyncHelper().get_order_data(uuid)
return Response(status=HTTP_200_OK, data=changeset)
except (KeyError, ValueError) as e:
return Response(status=HTTP_400_BAD_REQUEST, data=e.args)
我希望在 openapi.json 文件中看到以下端点:
- 订单/
- 订单/{uuid}/
但是没有呈现。我是否应该添加特定于这些函数的内容以便被 Swagger 检测到?
当我尝试将 django-rest-swagger 升级到 version 2.1.1
时问题已解决。
所以在版本 2.1.1 中,Swagger 能够检测使用 retrieve
或 list
函数实现的端点
我使用的是 django-rest-swagger 版本:2.0.5 和 django-rest-framework 版本:3.4.6。
我意识到当我使用 list
或 retrieve
函数时,Swagger 无法将它们检测为新端点。
我的 views.py 文件中有以下代码:
from rest_framework.viewsets import ViewSet
class OrdersViewSet(ViewSet):
lookup_field = 'uuid'
def list(self, request: Request, *args, **kwargs):
try:
changeset = OrderSyncHelper().get_order_list_data()
return Response(status=HTTP_200_OK, data=changeset)
except (KeyError, ValueError) as e:
return Response(status=HTTP_400_BAD_REQUEST, data=e.args)
def retrieve(self, request: Request, uuid: str, *args, **kwargs):
try:
changeset = OrderSyncHelper().get_order_data(uuid)
return Response(status=HTTP_200_OK, data=changeset)
except (KeyError, ValueError) as e:
return Response(status=HTTP_400_BAD_REQUEST, data=e.args)
我希望在 openapi.json 文件中看到以下端点:
- 订单/
- 订单/{uuid}/
但是没有呈现。我是否应该添加特定于这些函数的内容以便被 Swagger 检测到?
当我尝试将 django-rest-swagger 升级到 version 2.1.1
时问题已解决。
所以在版本 2.1.1 中,Swagger 能够检测使用 retrieve
或 list
函数实现的端点