我们已经使用drf-yasg记录了一组API。
在settings.py
文件中,我设置了以下设置:
schema_view = get_schema_view(
openapi.Info(
title="myTitle",
default_version='v' + str(1.0)
),
patterns=myPatterns,
public=False,
permission_classes=(permissions.IsAuthenticated,),
)
我通过python manage.py createsuperuser
命令创建了一些用户,这些用户登录后即可访问所有API端点。
第一个问题:如何设置“权限”,以便某些用户可以访问一组API,而另一组用户,另一组和类似管理员的用户可以访问所有API?
第二个问题:在使用django-rest-swagger时,我可以通过将/swagger
设置为permission_classes
来向试图到达IsAuthenticated
端点的匿名用户隐藏所有端点。然后,用户可以访问一个空荡荡的网页,从中可以登录以显示API端点。
但是,由于我已更新为drf-yasg
,所以我设置了相同的权限(请参见上文),但是如果匿名用户尝试访问/swagger
,则会收到django框架错误:“ NoReverseMatch位于/昂首阔步/”。如果用户在访问招摇之前已经登录,则没有问题。