python-tornado的介面用swagger進行包裝的例項
阿新 • • 發佈:2020-01-09
寫這個文章的主要原因,就是因為沒有相關的東西,導致我完全不知道應該怎麼做,經過了兩個晚上的摸索,終於搞清楚了,如果有誰需要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進行包裝的例項就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。