Django-rest-framework(七)swagger使用


在我們接口開發完之后,需要交付給別人對接,在沒有使用swagger的時候,我們需要單獨編寫一份api接口文檔,由postman之類的工具進行請求得到返回的結果。而有了swagger之后,可以通過提取接口代碼中的注釋來生成文檔,並且可以直接在瀏覽器中調用,獲取返回結果。先看下效果

安裝

pip install django-rest-swagger

setting.py 文件中添加

INSTALLED_APPS = [
    ...
    'rest_framework_swagger',
    ...
]

配置

在settings.py中可以添加修改swagger相關的配置

SWAGGER_SETTINGS = {
        # 這里可以用獲取到的token來登錄 
        'SECURITY_DEFINITIONS': {
            'api_key':{
                'type': 'apiKey',
                'in':'query', # token位置在url中
                'name':'token' # 驗權的字段
                }
            },
        'USE_SESSION_AUTH': False,
        'JSON_EDITOR': False, # False,用戶可以自己編輯格式,不用按照serializers中的數據添加。True,會有多個輸入框,輸入serializer對應的字段的值
        }

urls.py 中添加一下代碼


from rest_framework.schemas import get_schema_view
from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRenderer
   
schema_view = get_schema_view(title=‘API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer])

urlpatterns = [
    ...
    path('docs/', schema_view, name='docs'), # 線上環境中,最好去掉
    ]

運行服務,訪問docs/ 便可以發現生成的文檔。

NOTE

  • 注釋支持markdown語法,可以方便的調整格式了
  • 改完代碼,順便修改注釋就可以更新文檔了
  • docs/ 會有權限的判斷,所以訪問所有接口,最好給所有的權限
  • 表單等的字段和view(action)對應的serializers相關


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM