drf_yasg.openapi:Python中用于生成API文档的常用库
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是一个不错的选择。
