我在Django项目中使用了Django REST Swagger。能够显示所有URL的视图
permission_classes = [IsAuthenticated]
。虽然带有permission_classes = [IsAuthenticated]
的视图未显示在list-api中。
这里是一个例子:
class EquipmentCategoryViewSet(ResponseMixin, viewsets.ModelViewSet):
queryset = EquipmentCategory.objects.all()
serializer_class = EquipmentCategorySerializer
permission_classes = [IsAuthenticated]
如果我删除了permission_classes = [IsAuthenticated]
,它将显示在招摇清单API中。
我将swagger降级为2.1.2,然后单击授权并通过了令牌。
奇怪的是,我的值中带有前缀“ 令牌”。当我使用Token<tokenvalue>
登录时,登录失败。但是,当我通过<tokenvalue>
时,它得到了身份验证,但是未显示带有 isAuthenticated 的视图。
请建议在添加 isAuthenticated 的情况下显示视图的方法。
答案 0 :(得分:1)
在文档API的右上角,有一个用于授权或登录的选项。请在其中提供有效的令牌或登录。这将列出其他端点。
使用大招2.1.2。
最新的django swagger 2.2版存在一些问题 授权。参考: https://github.com/marcgibbons/django-rest-swagger/issues/762
答案 1 :(得分:1)
您可以覆盖模式
from rest_framework.schemas import get_schema_view
from rest_framework_swagger import renderers
schema_view = get_schema_view(title="Fbs Api Docs", public=True, renderer_classes=[renderers.OpenAPIRenderer, renderers.SwaggerUIRenderer])
您通过public = True,它将允许所有api列出, urls.py包括在下面
path('docs/', schema_view),