Flask框架搭建REST-API服務


一、目的

為了能夠將測試工具部署成RESTful-API服務,這樣就能通過接口的方式提供統一測試工具服務,使用人員就不用構建application而產生的各種環境問題、使用問題。

適合人群:Python開發、Flask框架使用、REST風格web架構

 

二、介紹

FlaskPython web開發輕量框架,自由添加需要的擴展(Django於此相反)

Flask核心特性:

  •  輕量級,提供插件接口
  •  封裝了request對象
  •  擁有藍圖功能
  •  flash,在C端警告提示用戶
  •  模板支持宏

 

REST特點(約束[constraint])

  •  客戶端-服務端 Client-Server    CS
  •  無狀態 Stateless    S
  •  緩存 Cache    $
  •  統一接口 Uniform-interface   U
  •  系統分層 Layered    L
  •  按需代碼  Code on Demand   COD

REST核心概念:資源就是一切

REST架構API中使用的HTTP請求方法:

  •  GET      獲取目標資源
  •  POST    創建新資源
  •  PUT       修改資源
  •  DELETE 刪除資源

REST中資源的格式:json(首推)xml

REST中版本管理方式:在URL加入版本號

 

三、REST-API of Flask

1,怎么將REST-API做成application的獨立子集?

答:使用Flask的藍圖功能。

 

2404500狀態碼,是由FLask自己生成的,而且是返回HTML響應,如何讓其返回json響應?

答:使用內容協商技術。(在錯誤處理程序中根據客戶端請求的格式改寫response.

 

3,怎么認證用戶,未經授權的用戶,不能訪問API

答:因為REST是基於HTTP協議,所以發送密令最佳方式使用HTTP認證,用戶密令包含在請求的Authorization首部中。FLask-HTTPAuth擴展,可以把協議的細節隱藏在修飾器中,因為認證只是在API藍圖中使用,所以初始化也在藍圖中。登錄名和密碼使用User模型中的方法驗證。登錄密令正確就返回True,失敗就False,通過的認證的用戶保存在FLask的全局對象g中,這樣view函數就能訪問。

 

4API是需要認證才能訪問,使用什么技術可以保護所有API

答:使用Flask裝飾器鈎子before_requestFLask-HTTPAuth擴展的login_required裝飾器,來對處理函數做修飾,這樣API藍圖只用的所有API都會進行自動認證。在處理函數中拒絕已通過認證但沒有確認賬戶的有用戶

 

5,怎么對用戶訪問API限制時間,過期不能訪問API

答:itsdangerous庫的TimedJSONWebSignatureSerializer生成tokentoken可以設置有效期

 


免責聲明!

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



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