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

DRF_Yasg.openapiInfo()实战教程

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

DRF_Yasg是一个用于Django REST framework的插件,它可以自动生成REST API的Swagger文档。DRF_Yasg提供了一些类和函数,可以帮助我们定义和配置文档的信息。

在这个教程中,我将为您介绍如何使用DRF_Yasg的openapiInfo()函数,并提供一些使用例子。

openapiInfo()函数是DRF_Yasg中的一个重要函数,它用于定义REST API文档的基本信息,包括标题、描述、版本等。该函数有以下参数:

- title:文档的标题。

- default_version:默认版本号。

- description:文档的描述。

- terms_of_service:服务条款的URL。

- contact:联系人信息。

- license:许可证信息。

现在,让我们通过以下代码来演示如何使用openapiInfo()函数来定义REST API的基本信息:

from drf_yasg import openapi

info = openapi.Info(
    title="My API",
    default_version="v1",
    description="This is a sample API.",
    terms_of_service="http://www.example.com",
    contact=openapi.Contact(email="contact@example.com"),
    license=openapi.License(name="MIT License"),
)

在这个例子中,我们定义了一个名为"Info"的实例,并传递了相应的参数来定义API的基本信息。标题被设置为"My API",默认版本号为"v1",描述为"This is a sample API"。我们还定义了服务条款的URL、联系人信息和许可证信息。

一旦我们定义了API的基本信息,我们就可以将该信息与其他文档配置信息一起传递给Swagger文档生成器。下面是一个使用openapiInfo()函数的完整示例:

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

schema_view = get_schema_view(
   openapi.Info(
      title="My API",
      default_version="v1",
      description="This is a sample API.",
      terms_of_service="http://www.example.com",
      contact=openapi.Contact(email="contact@example.com"),
      license=openapi.License(name="MIT License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
   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'),
   # ...
]

在这个示例中,我们首先导入了DRF_Yasg的一些必需的类和函数。然后,我们创建了一个schema_view实例,并传递了openapiInfo()函数定义的API基本信息。

接下来,我们定义了一些URL模式,将schema_view与Swagger UI和Redoc UI链接起来。

最后,在Django的URL配置中,我们使用path()函数将这些URL模式映射到相应的视图上。

通过上述代码,我们可以在浏览器中访问/swagger//redoc/路径,分别查看Swagger UI和Redoc UI生成的API文档。

总结起来,DRF_Yasg的openapiInfo()函数提供了一种方便的方式来定义REST API文档的基本信息。我们可以使用该函数设置标题、版本、描述等信息,并将其与其他配置信息一起传递给Swagger文档生成器。这样,我们就能够快速生成并展示具有详细描述的API文档。