rest framework可以自動幫助我們生成介面文件。
介面文件以網頁的方式呈現。
自動介面文件能生成的是繼承自apiview
及其子類的檢視。
rest framewrok生成介面文件需要coreapi
庫的支援。
1
pip install coreapi
在總路由中新增介面文件路徑。
文件路由對應的檢視配置為rest_framework.documentation.include_docs_urls
,
引數title
為介面文件**的標題。
123456
from
rest_framework.documentation import
include_docs_urls
urlpatterns = [
...path('docs/'
, include_docs_urls(title='站點頁面標題'))]
1) 單一方法的檢視,可直接使用類檢視的文件字串,如
123
4
class
booklistview
(generics.listapiview)
:"""
返回所有圖書資訊.
"""
2)包含多個方法的檢視,在類檢視的文件字串中,分開方法定義,如
123
4567
8
class
booklistcreateview
(generics.listcreateapiview)
:"""
get:
返回所有圖書資訊.
post:
新建圖書.
"""
3)對於檢視集viewset,仍在類檢視的文件字串中封開定義,但是應使用action名稱區分,如
123
4567
891011
1213
14
class
bookinfoviewset
(mixins.listmodelmixin, mixins.retrievemodelmixin, genericviewset)
:"""
list:
返回圖書列表資料
retrieve:
返回圖書詳情資料
latest:
返回最新的圖書資料
read:
修改圖書的閱讀量
"""
瀏覽器訪問 127.0.0.1:8000/docs/,即可看到自動生成的介面文件。
如果遇到報錯
123456
#
attributeerror: 'autoschema' object has no attribute 'get_link'
rest_framework =
兩點說明:
1) 檢視集viewset中的retrieve名稱,在介面文件**中叫做read
2)引數的description需要在模型類或序列化器類的字段中以help_text選項定義,如:
123
4
class
student
(models.model)
:...
age = models.integerfield(default=0
, verbose_name='年齡'
, help_text='年齡'
)...
或
123
4567
8910
class
studentserializer
(serializers.modelserializer)
:class
meta
:model = student
fields = "__all__"
extra_kwargs =
}
drf 自動生成介面文件
1借助於第三方 coreapi,swagger 先安裝好這兩個模組 2在路由中 此處省略了自動生成的students路由 path docs include docs urls title 圖書管理系統api path books views.booklistcreateview.as view 3...
DRF 自動生成介面文件
rest framework可以自動幫助我們生成介面文件。介面文件以網頁的方式呈現。自動介面文件能生成的是繼承自apiview及其子類的檢視。rest framewrok生成介面文件需要coreapi庫的支援 pip install coreapi 在總路由中新增介面文件路徑。文件路由對應的檢視配置...
drf 自動生成介面文件
rest framewor可以自動幫助我們生成介面文件 介面文件以網頁的方式呈現 自動介面文件能生成的是繼承自apiview及其子類的檢視 rest framewrok生成介面文件需要coreapi庫的支援。pip install coreapi在總路由中新增介面路徑 文件路由對應的檢視配置為res...