DRF_Yasg.openapiInfo()示例代码分析
DRF_Yasg是一个用于Django Rest Framework的Swagger/OpenAPI文档生成工具。DRF_Yasg可以根据Django Rest Framework的视图和模型定义自动生成接口文档,并支持自定义扩展和注释。
下面是DRF_Yasg中的openapiInfo()函数的示例代码以及它的使用例子。
from drf_yasg import openapi
def openapiInfo():
info = openapi.Info(
title="My API",
default_version='v1',
description="This is a sample API",
terms_of_service="https://www.example.com/terms_of_service/",
contact=openapi.Contact(email="contact@example.com"),
license=openapi.License(name="BSD License"),
)
return info
在上述代码中,首先从drf_yasg模块导入了openapi模块。然后使用openapi.Info类创建了一个info对象。在Info类的构造函数中,我们可以定义API的一些基本信息,如标题、版本、描述、服务条款等。
在这个例子中,我们将API的标题设置为"My API",版本设置为"v1",描述设置为"This is a sample API"。我们还为API设置了一个联系人,其中包含了联系人的email。我们为API设置了许可证,这里的许可证名称为"BSD License"。最后,我们通过调用openapi.Contact和openapi.License类创建了一个联系人和许可证对象。
下面是一个使用上述openapiInfo()函数的例子:
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_view = get_schema_view(
openapiInfo(),
public=True,
)
urlpatterns = [
# ...
path('api/swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
path('api/redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
# ...
]
在这个例子中,首先我们使用get_schema_view()函数创建了一个Schema视图,并将上述openapiInfo()函数的返回值作为参数传入。然后,我们将Schema视图与Swagger和Redoc UI绑定,并将它们添加到了Django的url配置中。
这样,我们就可以通过访问/api/swagger/和/api/redoc/来查看生成的API文档。
总结起来,DRF_Yasg的openapiInfo()函数可以用于定义API的基本信息,如标题、版本、描述等。这些信息将被用于生成API文档。在使用时,我们可以将openapiInfo()函数的返回值传递给get_schema_view()函数,以生成API文档的Schema视图。
