Flask 學習筆記(二):RESTful API
阿新 • • 發佈:2019-02-11
rul pos paypal request 類的方法 裝飾器 怎樣 out 語言
概括
- URL:需要操作的對象,也就是資源
- HTTP method:我要對該對象做什麽(POST 增、DELETE 刪、GET 查、PUT 和 PATCH 改)
- HTTP status code:操作的結果
做到這個,就達成了 REST 的第二層。
視圖的定義方式
一般視圖都使用 app.route()
裝飾器定義,但是這種方式顯然不適合用於定義 restful api.
對於 restful 場景,flask 提供了 MethodView 類,可以用基於類的方法來定義視圖函數:
class HttpMethodExample(MethodView): def get(self): return 'Send request with `GET` method' def post(self): return 'Send request with `POST` method' def put(self): return 'Send request with `PUT` method' def patch(self): return 'Send request with `PATCH` method' def delete(self): return 'Send request with `DELETE` method' # 基於 MethodView 構造視圖函數 example_view = HttpMethodExample.as_view('http_method_example2') # 為該視圖函數添加 url 規則 app.add_url_rule('/http-method-test2/', view_func=example_view)
flask 還提供了 jsonify 與 request.get_json() 用於序列化與反序列化數據。
flask-restplus
flask-restplus 是 flask-restful 的一個 fork 項目,對比文檔你可以發現它倆有九分相似。flask-restplus 的優勢在於它提供 API 文檔自動生成的功能。
待續。。。
參考
- 怎樣用通俗的語言解釋REST,以及RESTful? - 知乎
- 如何給老婆解釋什麽是RESTful? - 知乎
- Github API - v3
- PayPal API
- Flask-RESTPlus Doc
- 【Flask-RESTPlus系列】Flask-RESTPlus系列譯文
Flask 學習筆記(二):RESTful API