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

DRF_Yasg.openapiInfo()示例代码分析

发布时间:2023-12-14 08:30:08

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.Contactopenapi.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视图。