Flask RESTful Web服務的開發套路總結

平田發表於2015-07-14

這兩天看了《Flask Web開發》一書的第14章,關於 Flask RESTful Web服務的相關內容,有些地方還不太完全理解,這裡只記錄自己總結出來的一點感想,很有侷限性,僅作記錄和參考。

REST架構 的本質是將一切內容都當作資源對待,所以,針對不同的資源,後臺應該用不同的路由進行管理,而其中的簡單套路總結於此:

  • 資源管理動作的分類:

    • 查詢單項/列表資源:列出該類/該項資源
    • 新建/編輯資源:建立/修改資源內容,可能需要提供相應許可權
    • 查詢關聯資源: 多個型別的資源因業務相互關聯,如:作者——文章——評論
  • 資源管理動作的路由程式碼編寫套路:

    • 查詢單項資源:

      1. 查詢資源物件 get_or_404(id)
      2. return jsonify(資源.to_json())
      
    • 查詢列表資源:

      1. 獲取當前查詢的頁碼 `page`
      2. 根據 `page` 查詢當前頁所對應的資料集
      3. 根據當前頁位置指定前後頁url
      4. return jsonify({資源列表, 前一頁url, 後一頁url, 資料記錄總數})
      
    • 新建資源: 1. 根據請求發來的資料建立資源資料 2. 檢查當前使用者是否有操作許可權 3. 存入資料庫 4. return jsonify(資源.to_json()), 201, {資源url}

    • 編輯資源:

      1. 查詢資源物件 get_or_404(id)
      2. 檢查當前使用者是否有操作許可權
      3. 將修改寫入資料庫
      4. return jsonify(資源.to_json())
      
    • 查詢關聯資源:

      1. 查詢關聯關係中的主體資源物件 get_or_404(id)
      2. 獲取當前查詢的頁碼 `page`
      3. 根據 `page` 查詢當前頁所對應的資料集
      4. 根據當前頁位置確定前後頁url
      5. return jsonify({資源列表, 前一頁url, 後一頁url, 資料記錄總數})
      

以上幾種就是常見的Flask RESTful Web服務開發的基本套路。以後有遇到新的或需要修改的會逐步更新。

相關文章