3

我在我的 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],它会显示在 swagger list-api 中。我将 swagger 降级为 2.1.2 并单击授权并传递令牌。

奇怪的是我的值中有一个前缀“令牌”。当我登录时 Token<tokenvalue> 登录失败。但是当我通过它时,它得到了身份验证,但 没有显示带有isAuthenticated<tokenvalue>的视图。

请建议应该做些什么来显示添加了isAuthenticated的视图。

4

2 回答 2

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),
于 2018-10-10T11:16:54.407 回答
1

在文档 API 右上角有一个用于授权或登录的选项。请在其中提供有效的令牌或登录。这将列出其他端点。

使用招摇 2.1.2。

最新的 django swagger 版本 2.2 存在一些授权问题。参考: https ://github.com/marcgibbons/django-rest-swagger/issues/762

于 2018-10-10T10:57:49.503 回答