DRF-YASG:Python中处理OpenAPIInfo的 实践和建议
发布时间:2024-01-20 19:35:01
DRF-YASG 是Django Rest Framework (DRF)的swagger工具,用于自动生成和处理OpenAPI文档。在Python中使用DRF-YASG处理OpenAPIInfo的 实践和建议如下:
1. 定义API视图
首先,你需要定义你的API视图。使用DRF创建你的API视图,并在视图中定义各种操作,比如GET,POST等。
from rest_framework import generics
from .models import MyModel
from .serializers import MyModelSerializer
class MyModelView(generics.ListCreateAPIView):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
2. 定义API文档信息
接下来,你可以使用DRF-YASG来定义你的OpenAPI文档信息。可以在你的settings.py文件中添加以下配置:
SWAGGER_SETTINGS = {
'DEFAULT_INFO': 'your_project.urls.swagger_info',
}
在your_project.urls文件中,你可以定义你的API文档信息:
from drf_yasg import openapi
def swagger_info(request):
return {
'title': 'My API',
'version': '1.0',
'description': 'My API description',
'contact': openapi.Contact(email='contact@myapi.com'),
'license': openapi.License(name='BSD License'),
}
3. 添加Swagger视图
接下来,你需要将Swagger视图添加到你的URL配置中。打开你的urls.py文件,添加以下代码:
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="My API description",
terms_of_service="https://www.google.com/policies/terms/",
contact=openapi.Contact(email="contact@myapi.com"),
license=openapi.License(name="BSD License"),
),
public=True,
)
urlpatterns = [
path('swagger(<format>\.json|\.yaml)', schema_view.without_ui(cache_timeout=0), name='schema-json'),
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'),
# ... your other URL patterns
]
这将为你的项目添加Swagger视图,你可以通过访问/swagger/来查看Swagger UI。
4. 运行你的项目
现在,你可以运行你的项目,并通过访问/swagger/来查看自动生成的OpenAPI文档。
这是一个基本的使用DRF-YASG处理OpenAPIInfo的例子。你可以根据你的项目需求对上述代码进行修改和自定义。
总结来说,使用DRF-YASG处理OpenAPIInfo的 实践是定义API视图,定义API文档信息,添加Swagger视图,并运行你的项目。这些步骤将帮助你自动生成和处理OpenAPI文档,提供给其他开发人员使用和参考。
