drf 生成接口文档
生成接口文档
21.1 coreapi的使用#
安装依赖
pip install coreapi
配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app', # django原生接口
'app01', # drf接口
'sers', # 序列化器的使用
'req', # drf提供的请求与响应
'viewdemo', # 视图
'school', # 序列化器的嵌套
'opt', # drf组件
'django_filters', # 过滤
'coreapi', # 生成接口文档
'rest_framework',
]
REST_FRAMEWORK = {
......
# 接口文档生成
'DEFAULT_SCHEMA_CLASS':'rest_framework.schemas.AutoSchema',
}
路由
from django.contrib import admin
from django.urls import path, include
from rest_framework.documentation import include_docs_urls
urlpatterns = [
path('admin/', admin.site.urls),
path('api/',include('app.urls')),
path('api/', include('app01.urls')),
path('sers/', include('sers.urls')),
path('req/', include('req.urls')),
path('viewdemo/', include('viewdemo.urls')),
path('school/', include('school.urls')),
path('opt/', include('opt.urls')),
path('docs/', include_docs_urls(title="drf教程api接口文档")),
]
访问接口文档
GET 127.0.0.1:8000/docs/
21.2 yasg的使用#
安装依赖
pip install drf-yasg
配置
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app', # django原生接口
'app01', # drf接口
'sers', # 序列化器的使用
'req', # drf提供的请求与响应
'viewdemo', # 视图
'school', # 序列化器的嵌套
'opt', # drf组件
'django_filters', # 过滤
'coreapi', # 生成接口文档
'drf_yasg', # 生成接口文档
'rest_framework',
]
路由
import rest_framework.permissions
from django.contrib import admin
from django.urls import path, include
from rest_framework.documentation import include_docs_urls
# yasg的视图配置类,用于生成api
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_view = get_schema_view(
openapi.Info(
title="drf教程api文档", # 必须
default_version="v1.0.0", # 必须
description="drf学习时写的案例,现在生成一个接口文档",
terms_of_service='',
contact=openapi.Contact(email="3049399358@qq.com"),
license=openapi.License(name="闵麒良"),
),
# public=True, # 所有人访问
permission_classes=[rest_framework.permissions.IsAuthenticated], # 权限类,和上面的互斥
)
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('app.urls')),
path('api/', include('app01.urls')),
path('sers/', include('sers.urls')),
path('req/', include('req.urls')),
path('viewdemo/', include('viewdemo.urls')),
path('school/', include('school.urls')),
path('opt/', include('opt.urls')),
path('docs/', include_docs_urls(title="drf教程api接口文档")), # coreapi
path('doc/', schema_view.with_ui("swagger",cache_timeout=0),name="schema-swagger"), # swagger
]
访问接口文档
GET 127.0.0.1:8000/doc/
作者:minqiliang
出处:https://www.cnblogs.com/minqiliang/p/16822239.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY