1. 程式人生 > 程式設計 >python-tornado的介面用swagger進行包裝的例項

python-tornado的介面用swagger進行包裝的例項

寫這個文章的主要原因,就是因為沒有相關的東西,導致我完全不知道應該怎麼做,經過了兩個晚上的摸索,終於搞清楚了,如果有誰需要tornado+swagger的輸出模式,可以照這個套;

主要是static檔案的生成

我們用swagger就是為了做一個靜態頁面,也就是生成一個static檔案:

幾個必備的工具:swagger-py-codegen我們不用他們的檔案框架只需要其生成的static檔案,拷貝到自己資料夾下即可;

1)需要注意的是生成檔案需要用yaml檔案,當編輯好檔案後,最主要的是要注意base_path檔案的改動,你生成的檔案的請求會加上你basepath的內容,會造成請求出錯, 比如 你的url:port/GET?testparas=test,那麼如果說你的static檔案生成的過程中,如下圖所示

2)生成的檔案,swagger-ui中的swagger.json檔案是按照你的yaml檔案生成的,index.html檔案中是有地方設定swagger.json的地址的,如下圖所示

3)這個時候我們可以啟動我們的swagger程式,

接下來接受一下tornado中的一些設定,主要為application的設定:

在這裡其實沒用到tornado的高階方法,只是隨意設定了一個引數進行測試:

`import tornado.web
import tornado.ioloop
import os


abs_path = os.path.dirname(os.path.abspath("__file__"))
print(abs_path)

class IndexHandler(tornado.web.RequestHandler):
 def get(self,*args,**kwargs):
  para = self.get_argument('test',None)
  self.write("test tornado {}".format(para))


if __name__ == '__main__':
 app = tornado.web.Application([
  (r'/GET',IndexHandler)
 ],static_path=os.path.join(abs_path,'static')
 )
 # 監聽埠
 app.listen(8000)
 tornado.ioloop.IOLoop.current().start()`

目錄結構如下

生成swagger-ui的程式碼如下:

swagger_py_codegen -s api.yaml project-one -p demo -tlp=tornado --ui --spec

其中 –ui –spec是生成swagger-ui的關鍵程式碼

以上這篇python-tornado的介面用swagger進行包裝的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。