溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

swagger如何在flask項目中使用

發(fā)布時間:2020-12-10 14:22:09 來源:億速云 閱讀:271 作者:Leah 欄目:開發(fā)技術(shù)

swagger如何在flask項目中使用?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

   此次主要介紹介紹在flask框架中如何集成swagger文檔, 我們知道以前給同事提供接口文檔主要是寫一個文檔, 當遇到頻繁修改時,就需要更新文檔非常麻煩, 這時swagger文檔就出現(xiàn)了,一個在線得接口文檔,同事可以在線上查看接口文檔, 當需要修改接口時秩序修改對應(yīng)得代碼,文檔也會隨之更新。如下圖所示。

swagger如何在flask項目中使用

  此次集成參考flask-restplus官方文檔,flask-restplus框架是flask-restful框架的一個加強版, 類似django框架的rest framework框架,應(yīng)用前得先安裝框架執(zhí)行命令:

pip install flask-restplus

  然后結(jié)合官網(wǎng)寫個簡單示例感受一下:

from flask import Flask
from flask_restplus import Api, Resource, fields, reqparse

app = Flask(__name__)
api = Api(app, version='1.0', title='TodoMVC API', description='A simple TodoMVC API',)

ns = api.namespace('todo', description='TODO operations')               # 模塊命名空間

todo = api.model('Todo', {                               # 返回值模型
  'id': fields.Integer(readonly=True, description='The task unique identifier'),
  'task': fields.String(required=True, description='The task details')
})

parser = reqparse.RequestParser()                      # 參數(shù)模型
parser.add_argument('id', type=str, required=True, help="id")
parser.add_argument('name', type=str, required=True, help="名稱")
parser.add_argument('volume', type=int, required=True, help="方量")


class TodoDAO(Resource):
  def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.params = parser.parse_args()

  @ns.expect(parser)                  # 用于解析對應(yīng)文檔參數(shù),             
  @ns.response(200, "success response", todo)      # 對應(yīng)解析文檔返回值
  def get(self):
    return self.params


ns.add_resource(TodoDAO, "/to", endpoint="to_do")

app.run()

我們啟動得地址為127.0.0.1:5000得地址, 然后我們只需在瀏覽器打開即可查看自己寫好得api文檔,如下圖:

swagger如何在flask項目中使用

看完上述內(nèi)容,你們掌握swagger如何在flask項目中使用的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI