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

DRF_Yasg.openapiInfo()用法解析

发布时间:2023-12-14 08:28:54

DRF_Yasg(Django Rest Framework Yet Another Swagger)是一个用于生成Swagger/OpenAPI文档的库,它提供了DRF的装饰器和工具,可以根据视图函数和模型类生成Swagger文档。

DRF_Yasg.openapi_info()是一个用于定义Swagger文档信息的函数。通过调用这个函数,我们可以自定义Swagger文档的各个部分,包括标题、版本、描述、联系人等。

下面是DRF_Yasg.openapi_info()函数的语法:

openapi_info(title: str = '', version: str = '', description: Optional[str] = None, terms_of_service: Optional[str] = None,
             contact: Optional[Dict[str, str]] = None, license: Optional[Dict[str, str]] = None,
             **kwargs: Any) -> Callable

通过调用DRF_Yasg.openapi_info()函数,我们可以设置以下参数来定义Swagger文档的信息:

- title: Swagger文档的标题,类型为字符串。

- version: Swagger文档的版本,类型为字符串。

- description: Swagger文档的描述,类型为可选的字符串。描述可以包括API的功能、用法说明以及一些其他相关信息。

- terms_of_service: API的使用条款,类型为可选的字符串。使用条款可用于指导开发者在使用API时的规范和限制。

- contact: 联系人信息,类型为可选的字典。可以包括联系人姓名、邮箱、URL等联系方式。

- license: 许可证信息,类型为可选的字典。可以包括许可证名称和URL。

- kwargs: 其他可选的参数,用于定义Swagger文档的其他信息。

下面是一个使用DRF_Yasg.openapi_info()函数的例子:

from drf_yasg import openapi
from drf_yasg.utils import swagger_auto_schema

@swagger_auto_schema(method='post',
                     request_body=openapi.Schema(
                         type=openapi.TYPE_OBJECT,
                         properties={
                             'name': openapi.Schema(type=openapi.TYPE_STRING),
                             'age': openapi.Schema(type=openapi.TYPE_INTEGER),
                         }
                     ),
                     responses={200: 'OK'})
def my_view(request):
    """
    This is a view description
    """
    pass

openapi_info = DRF_Yasg.openapi_info(
    title='My API',
    version='1.0',
    description='API for my application',
    contact={'name': 'John', 'email': 'john@example.com'},
    license={'name': 'MIT', 'url': 'https://opensource.org/licenses/MIT'}
)

@swagger_auto_schema(**openapi_info)
def my_view(request):
    """
    This is a view description
    """
    pass

在上面的例子中,我们首先使用DRF_Yasg.openapi_info()函数定义了Swagger文档的信息,包括标题、版本、描述,以及联系人和许可证信息。然后,我们使用@swagger_auto_schema装饰器将这些信息应用到视图函数my_view上。最后,我们可以在函数体内部使用docstring来描述API的功能和用法。

通过这种方式,我们可以轻松地定义Swagger文档的信息,并将其应用到DRF的视图函数中,从而生成具有自定义信息的Swagger文档。这样,开发者和用户可以更好地了解API的功能和用法,并快速上手使用。