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

drf_yasg.openapi:Python中用于生成API文档的常用库

发布时间:2023-12-28 04:38:02

drf_yasg是一个在Python中生成API文档的常用库。它为使用Django和Django REST Framework构建的Web API提供了一个自动生成OpenAPI(以前称为Swagger)规范的功能。通过使用drf_yasg,开发人员可以轻松地从代码中生成完整且详细的API文档。

使用drf_yasg可以大大简化API文档编写的工作量,因为它可以自动收集和解析API视图、模型和序列化器的信息,并将其转换为可读性强且易于使用的文档页面。下面是一个简单的使用例子。

首先,我们需要安装drf_yasg库。在命令行中运行以下命令:

pip install drf_yasg

接下来,我们需要在项目的settings.py文件中添加drf_yasg的配置。在INSTALLED_APPS中添加以下行:

INSTALLED_APPS = [
    ...
    'drf_yasg',
]

然后,在项目的urls.py文件中添加以下行:

from django.urls import path, include
from django.contrib import admin
from rest_framework import routers
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

router = routers.DefaultRouter()

schema_view = get_schema_view(
   openapi.Info(
      title="API文档",
      default_version='v1',
      description="这是一个API文档的示例",
      terms_of_service="https://www.example.com/policies/terms/",
      contact=openapi.Contact(email="contact@example.com"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns = [
   path('admin/', admin.site.urls),
   path('api/', include(router.urls)),
   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'),
]

在这个例子中,我们首先创建了一个DefaultRouter实例,并将其添加到urlpatterns中。然后,我们创建了一个get_schema_view实例,并通过openapi.Info来设置API文档的标题、版本、描述等信息。接下来,我们设置了public为True,这将允许所有用户访问API文档。最后,我们定义了两个路径,分别用于Swagger UI和Redoc UI。

现在,我们可以运行项目,并在浏览器中访问http://localhost:8000/swagger/和http://localhost:8000/redoc/来查看生成的API文档。你将看到一个完整和详细的API文档页面,其中包含了所有的API视图、模型和序列化器的信息。

总结起来,drf_yasg是一个非常有用的Python库,可以帮助开发人员快速生成API文档。它简化了API文档的编写过程,提供了自动解析和收集API信息的功能,生成可读性强且易于使用的文档页面。如果你正在开发使用Django和Django REST Framework的Web API,并且需要生成API文档,drf_yasg是一个不错的选择。