前言
任何一個系統(tǒng),都不可缺少接口文檔咙好。django也提供了十分方便的生成接口文檔的工具類
一篡腌、coreapi
1、安裝
pip install coreapi
pip install Pygments
pip install Markdown
2勾效、使用
1嘹悼、DRF V3.10以上需要本步驟
setting.py
:
REST_FRAMEWORK = {
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}
2、添加接口文檔路由层宫,項目/urls.py
:
from django.contrib import admin
from django.urls import path, include, re_path
from rest_framework.documentation import clude_docs_urls
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('interfaces.urls')),
path('', include('projects.urls')),
path('docs/', include_docs_urls(title='平臺接口文檔',
description='接口文檔平臺'))
]
3杨伙、啟動項目,訪問
127.0.0.1:8000/docs
3萌腿、文檔添加注釋
- 給單個視圖類添加注釋:在視圖類添加注釋即可
- 給視圖類的多個方法添加注釋
例子:
class ProjectsListCreateViewSet(ListCreateAPIView):
"""
get:
返回所有項目信息
post:
新建項目
"""
給視圖集中的action添加注釋
例子:
class ProjectsViewSet(viewsets.ModelViewSet):
"""
create:
創(chuàng)建項目
retrieve:
獲取項目詳情數(shù)據(jù)
update:
完整更新項目
partial_update:
部分更新項目
destroy:
刪除項目
list:
獲取項目列表數(shù)據(jù)
names:
獲取所有項目名稱
interfaces:
獲取指定項目的所有接口數(shù)據(jù)
"""
二缀台、drf-yasg
支持多種形式查看接口文檔,包括swagger
1哮奇、安裝
pip install drf-yasg
2膛腐、使用
1、注冊app鼎俘,setting.py
INSTALLED_APPS = [
# 第一個區(qū)域哲身,django自己的app
# 第二個區(qū)域,第三方的app
'drf_yasg'
# 第三個區(qū)域贸伐,項目中自定義的app
]
2勘天、添加接口文檔路由,項目/urls.py:
from django.contrib import admin
from django.urls import path, include, re_path
from rest_framework.documentation import clude_docs_urls
from drf_yasg.views import get_schema_view
from drf_yasg import openapi
schema_view = get_schema_view(
openapi.Info(
title = 'API接口文檔',
default_version='v1',
description='接口文檔平臺',
# terms_of_service='http://api.xxx.com',
contact=openapi.Contact(email='xxxx@qq.com'),
license=openapi.License(name='License')
),
public=True
# 權(quán)限類
# permission_classes = (permissions.AllowAny),
)
urlpatterns = [
re_path(r'^swagger(?P<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'
),
path('redoc/', schema_view.with_ui('redoc', cache_timeout=0),
name='schema-redoc')
]
3捉邢、使用
1脯丝、訪問json格式的swagger
127.0.0.1:8000/swagger.json
2、訪問yaml格式的swagger
127.0.0.1:8000/swagger.yaml
3伏伐、訪問正常格式的swagger
127.0.0.1:8000/swagger/
4宠进、訪問redoc格式(開源項目一般是這種)
127.0.0.1:8000/redoc/
轉(zhuǎn)載于:http://www.reibang.com/p/b679628d5322