1. 程式人生 > >Flask 學習筆記(二):RESTful API

Flask 學習筆記(二):RESTful API

rul pos paypal request 類的方法 裝飾器 怎樣 out 語言

概括

  1. URL:需要操作的對象,也就是資源
  2. HTTP method:我要對該對象做什麽(POST 增、DELETE 刪、GET 查、PUT 和 PATCH 改
  3. 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