欢迎访问宙启技术站
智能推送

Python中使用drf_yasg.openapi生成具有中文注释的Swagger接口文档的实例

发布时间:2023-12-27 02:44:20

在Python中使用drf_yasg库生成具有中文注释的Swagger接口文档非常简单。以下是一个生成Swagger接口文档的示例实例,并附带使用例子。

首先,确保已安装drf-yasg库。可以使用以下命令安装:

pip install drf-yasg

接下来,我们创建一个Django项目,并在项目的settings.py文件中添加rest_frameworkdrf_yasgINSTALLED_APPS中:

INSTALLED_APPS = [
    ...
    'rest_framework',
    'drf_yasg',
    ...
]

然后,我们需要在项目的urls.py文件中配置Swagger的URL和文档视图。示例代码如下所示:

from django.conf.urls import url
from django.urls import include
from drf_yasg import views
from drf_yasg import openapi

schema_view = views.get_schema_view(
    openapi.Info(
        title="API文档",
        default_version='v1',
        description="API文档描述",
        terms_of_service="https://www.example.com/policies/terms/",
        contact=openapi.Contact(email="contact@example.com"),
        license=openapi.License(name="BSD License"),
    ),
    public=True,
    permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
    ...
    url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
    ...
]

在以上代码中,我们定义了Swagger的文档视图和相关参数。可以根据实际情况更改这些参数的值。例如,title是文档的标题,description是文档的描述。

最后,在需要生成Swagger接口文档的API视图函数或类中,添加@swagger_auto_schema装饰器并传入相应的参数。示例代码如下所示:

from drf_yasg.utils import swagger_auto_schema

@swagger_auto_schema(
    method='post',
    operation_description="创建一个用户",
    request_body=UserSerializer,
    responses={201: UserSerializer()}
)
@api_view(['POST'])
def create_user(request):
    """
    创建一个新用户
    """
    # 创建用户的逻辑
    ...

在以上代码中,我们使用了swagger_auto_schema装饰器来为create_user函数生成Swagger接口文档。method参数指定了请求方法,operation_description参数指定了操作的描述,request_body参数指定了请求体的序列化器,responses参数指定了响应的定义。

完成以上设置后,启动Django项目并访问http://localhost:8000/swagger/即可查看生成的Swagger接口文档。可以在Swagger页面上看到带有中文注释的API文档,并可以尝试使用API接口。

以上就是在Python中使用drf_yasg生成具有中文注释的Swagger接口文档的实例。使用这个库可以方便地生成API接口文档,并为开发人员和用户提供了交互式的接口文档查看和测试界面。