0

我正在使用 django-rest-swagger 版本:2.0.5 和 django-rest-framework 版本:3.4.6。

我意识到当我使用listretrieve运行时,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 检测到吗?

4

1 回答 1

0

当我尝试将 django-rest-swagger 升级到version 2.1.1.

因此,在 2.1.1 版本中,Swagger 能够检测使用retrievelist函数实现的端点

于 2017-03-23T08:55:15.610 回答