drf之自動生成介面文件

2022-05-18 18:15:47 字數 2458 閱讀 9393

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...