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

DRF_Yasg.openapiInfo()指南

发布时间:2023-12-14 08:15:50

DRF-YASG是一个用于Django Rest Framework(DRF)的插件,它可以根据DRF的View和Serializer自动生成OpenAPI(以前被称为Swagger)文档。在使用DRF-YASG生成OpenAPI文档时,需要使用DRF_Yasg.openapi_info()函数来配置生成文档的信息,下面是一个使用例子:

from drf_yasg import openapi
from drf_yasg.views import get_schema_view

def openapi_info():
    # 创建一个OpenAPI对象
    info = openapi.Info(
        title="My API",  # API标题
        default_version="v1",  # API版本
        description="My API description",  # API描述
        terms_of_service="https://www.example.com/terms/",  # API服务条款链接
        contact=openapi.Contact(email="contact@example.com"),  # 联系信息
        license=openapi.License(name="BSD License"),  # API许可协议
    )

    # 创建一个OpenAPI视图
    openapi_view = get_schema_view(
        info=info,  # OpenAPI对象
    )

    return openapi_view

# 在urls.py中配置OpenAPI视图
urlpatterns = [
    path("api/docs/", openapi_info().with_ui("swagger"), name="api_docs"),  # 使用Swagger UI生成文档
]

在上面的例子中,我们首先导入了需要的DRF-YASG模块。然后,在openapi_info()函数中,我们创建了一个OpenAPI对象,并配置了相关信息,如标题、版本、描述等。我们还设置了API服务条款链接、联系人信息和许可协议。

接下来,我们使用get_schema_view()函数创建了一个OpenAPI视图,将刚才创建的OpenAPI对象传递给该函数。最后,我们在Django的urls.py文件中配置了该OpenAPI视图的URL路径,并使用Swagger UI作为UI界面来生成文档。

在生成文档时,可以根据实际需求进行更多的配置。例如,可以指定API的地址前缀、认证方式、操作扩展、扩展操作等。

值得注意的是,DRF-YASG通过DRF的ViewSet和Serializer来自动生成OpenAPI文档,因此需要在DRF的View和Serializer类中添加相关的DRF-YASG装饰器,以便生成准确的文档信息。

除了Swagger UI,DRF-YASG还支持其他多种UI界面,如Redoc和ReDoc-Standalone等。

总结来说,DRF-YASG可以帮助我们轻松地根据DRF的View和Serializer自动生成OpenAPI文档。通过DRF_Yasg.openapi_info()函数,我们可以配置生成文档的信息,并在Django的urls.py文件中配置OpenAPI视图的URL路径。