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

DRF_Yasg.openapiInfo()配置指南

发布时间:2023-12-14 08:27:06

DRF-YASG(Django REST framework Yet Another Swagger Generator)是一个用于生成Django REST框架的Swagger/OpenAPI文档的库。它提供了一种简单方便的方法来自动生成API文档,并且可以通过一些配置选项来定制生成的文档。本文将介绍DRF-YASG中的openapi_info()方法以及相关的配置选项,并提供一些使用例子。

在使用DRF-YASG生成API文档时,首先需要在urls.py中引入schema_view视图,然后通过调用openapi_info()方法来配置API文档的信息。openapi_info()方法接受一个OpenApiInfo对象作为参数,该对象包含了API文档的基本信息,如标题、描述、版本等。

下面是一个示例配置:

from drf_yasg import openapi
from drf_yasg.views import get_schema_view

schema_view = get_schema_view(
    openapi_info=openapi.Info(
        title="My API",
        default_version='v1',
        description="API for my app",
        terms_of_service="https://www.example.com/terms/",
        contact=openapi.Contact(email="contact@example.com"),
        license=openapi.License(name="BSD License"),
    ),
    # ... other options
)

上面的代码中,我们创建了一个OpenApiInfo对象并传入schema_viewopenapi_info参数中。OpenApiInfo对象的属性可以根据需求进行配置,下面是一些常用属性的说明:

- title:API文档的标题。

- default_version:API的默认版本。

- description:API文档的描述信息。

- terms_of_service:API的使用条款。

- contact:API的联系人信息,包括姓名和电子邮件地址。

- license:API的许可证信息,包括许可证名称。

除了上述属性之外,OpenApiInfo对象还有其他一些可用的属性,如versionhostschemes等,可以根据需要进行配置。有关完整的配置选项,请参考DRF-YASG的官方文档。

除了配置openapi_info()方法之外,还可以通过其他配置选项来定制生成的API文档,例如:

- public:是否公开API文档,默认为True。如果为False,则只有经过授权的用户才能查看API文档。

- permission_classes:权限类列表,配置哪些用户可以查看API文档。

- authentication_classes:认证类列表,配置API文档的认证方式。

下面是一个完整的配置示例:

from drf_yasg import openapi
from drf_yasg.views import get_schema_view
from rest_framework.permissions import AllowAny
from rest_framework.authentication import TokenAuthentication

schema_view = get_schema_view(
    openapi_info=openapi.Info(
        title="My API",
        default_version='v1',
        description="API for my app",
        terms_of_service="https://www.example.com/terms/",
        contact=openapi.Contact(email="contact@example.com"),
        license=openapi.License(name="BSD License"),
    ),
    public=False,
    permission_classes=(AllowAny,),
    authentication_classes=(TokenAuthentication,),
    # ... other options
)

上面的示例配置了public属性为False,意味着只有经过授权的用户才能查看API文档;配置了permission_classes(AllowAny,),表示所有用户都可以查看API文档;配置了authentication_classes(TokenAuthentication,),表示API文档的认证方式为Token认证。

使用DRF-YASG生成API文档非常简单,只需通过配置openapi_info()方法和相关选项即可。通过合理配置,可以生成符合项目需求的API文档,并提供给用户进行查看和使用。