我一直在尝试将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失败了。任何帮助表示赞赏。谢谢!
答案 0 :(得分:1)
我有一个由 Django 组成的项目,我是 DRF 的新手。我见过“规范中没有定义操作!”在尝试 def-yasg 时也是如此,它是 Swagger 生成器之一。希望这种方式对你有用。 我导入 -> from rest_framework.views 导入 APIView。
views.py 中的类就像
类 FeedView(View)
当我像
这样改变类时功能出现了
类 FeedView(APIView)
我需要处理@swagger_auto_schema、@api_view 以使我的 API 文档使用正确的参数。