DRF_Yasg.openapiInfo()实战教程
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文档。
