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

DRF-YASG中如何配置和管理OpenAPIInfo

发布时间:2024-01-20 19:27:46

DRF-YASG是一个在Django Rest Framework(DRF)中用于自动生成和文档化API的工具,使用OpenAPI规范。OpenAPI规范是一种定义和描述RESTful API的语言无关的标准。

在DRF-YASG中,可以通过定义OpenAPIInfo对象来配置和管理API的元信息。OpenAPIInfo对象需要以下几个属性:

1. title:API的标题。

2. default\_version:默认的API版本。

3. description:API的描述。

4. terms\_of\_service:服务条款。

5. contact:联系人的信息。

6. license:许可证的信息。

7. license\_url:许可证的URL。

以下是一个使用DRF-YASG配置和管理OpenAPIInfo的例子:

from django.urls import path
from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework import permissions

# 定义OpenAPIInfo对象
info = openapi.Info(
    title="My API",
    default_version="v1",
    description="API for my project",
    terms_of_service="https://example.com/terms/",
    contact=openapi.Contact(email="contact@example.com"),
    license=openapi.License(name="BSD License"),
    license_url="https://opensource.org/licenses/BSD-3-Clause",
)

# 创建API schema视图
schema_view = get_schema_view(
    info=info,
    public=True,
    permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
    # API文档URL
    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'),
    # 其他API URL
    path('api/v1/', include('myapp.urls')),
]

在上述例子中,首先创建了一个OpenAPIInfo对象,并设置了相应的属性,如标题、版本号、描述等。然后,使用这个OpenAPIInfo对象来创建API schema视图。最后,将API文档的URL和其他API的URL添加到项目的URL配置中。

通过上述配置,当访问/swagger//redoc/路径时,将展示自动生成的API文档。API文档将包括指定的标题、版本号、描述等信息,并根据项目中定义的API视图自动生成相应的API文档内容。

总结来说,通过DRF-YASG,可以方便地配置和管理OpenAPIInfo对象来定义API的元信息,并自动生成和文档化API。在实际项目中,可以根据需要设置OpenAPIInfo对象的各个属性,以描述和展示API的相关信息。