Swagger Django [规范中未定义任何操作]

时间:2020-08-07 00:26:58

标签: django django-rest-framework swagger drf-yasg django-rest-swagger

我一直在尝试将Swagger与Django应用程序集成,并遇到以下错误: 规范中未定义任何操作!

我的项目结构是

App 
    views.py 
    urls.py
    ..
App2 
    settings.py 
    urls.py
    ..

我出于目的使用drf_yasg。我在settings.py中包含了所有详细信息,在App2中,我在urls.py中包含了这些信息:

from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view = get_schema_view(
   openapi.Info(
      title="Testing",
      default_version='v1',
      description="Doc Integration",
      terms_of_service="https://www.google.com/policies/terms/",
      contact=openapi.Contact(email="abc@abc.com"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns=[path("admin/", admin.site.urls),
            path("", include("app.urls")),
            path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
            path('redoc', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),]

我的类视图(例如Att(generic.TemplateView)类和方法在App下的views.py中声明。我尝试了@ swagger_auto_schema,@ api_view等方法在文档中显示应用程序类和函数。但是只会返回规范中未定义的任何操作!。

我也尝试使用路由器注册视图,但没有用,即使django-rest-swagger失败了。任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:1)

我有一个由 Django 组成的项目,我是 DRF 的新手。我见过“规范中没有定义操作!”在尝试 def-yasg 时也是如此,它是 Swagger 生成器之一。希望这种方式对你有用。 我导入 -> from rest_framework.views 导入 APIView。

views.py 中的类就像
类 FeedView(View)
当我像
这样改变类时功能出现了 类 FeedView(APIView)

我需要处理@swagger_auto_schema、@api_view 以使我的 API 文档使用正确的参数。