django - 排除特定 HTTP 方法的 swagger 文档

标签 django swagger drf-yasg

我使用 drf-yasg 为我的 Django REST API 生成 swagger 文档。我有几个端点,items/ 具有 GET、POST 和 DELETE 方法;和 items/ 仅使用 DELETE 方法。但是,生成的 swagger 文档错误地还包含后一个端点的 GET 和 POST。

这是我在 urls.py 中的片段:

urlpatters = [
    url(r'^items/$', views.ItemViewSet.as_view()),
    path('items/<uuid:itemID>', views.ItemViewSet.as_view()),
]

views.py 包含类似以下内容:

class ItemViewSet(mixins.DestroyModelMixin, GenericAPIView):
    def get(self, request):
            # ...
            return Response(HTTP_200_OK)

    def post(self, request):
            # ...
            return Response(status=status.HTTP_201_CREATED)

    def delete(self, request, itemID):
             # ...
             return Response(status=status.HTTP_204_NO_CONTENT)

    def delete(self, request):
            # ...
            return Response(status=status.HTTP_204_NO_CONTENT)

如何从 items/ 文档中排除 GET 和 POST?

我已阅读https://github.com/axnsan12/drf-yasg/blob/master/docs/custom_spec.rstExclude URLs from Django REST Swagger但尚未找到可行的解决方案。

最佳答案

您可以通过在views.py中设置swagger_schema = None来从文档中排除API端点

  class MyView(generics.ListCreateAPIView):
    """MyView class doc."""
    swagger_schema = None

    def get(self, response):
        # Do stuff here

来源:https://github.com/axnsan12/drf-yasg/commit/a211184478e6f0ca348312438c9c29d7b535b0fa

关于django - 排除特定 HTTP 方法的 swagger 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813253/

相关文章:

ruby-on-rails - swagger_yard 将其生成的 JSON 放在哪里?

python - 将模型字段序列化为嵌套对象/字典

python - Django: order_by ('?' ) 有奇怪的结果

python - 如何使用两个 Django 身份验证后端并根据使用的后端提供不同的访问权限?

api - 我应该使用什么规范来记录 REST API?

django - drf-spectacular 使用错误的 AutoSchema 来生成 Swagger

python - Django 2.x drf-yasg 如何在自定义方法中创建 API(如 Swagger )

python - 使用pip安装python包报错

python - 在 Django Python 中将一个 View 重定向到另一个 View

json - 如何在 swagger-spec 中表达 "arbitrary JSON"?