[編程理解] RESTful風格接口的理解

RESTful風格接口并不適合所有情況

有時候,RESTful風格接口的確簡化了資源定位以及資源CRUD的問題,但是當我們想做一些特殊操作時 ,該風格顯然不適合。

RESTful風格接口組成

  • 請求方法(GET.POST,PUT,DELETE等)
  • 請求路徑 http://ip:port/偽資源目錄/資源ID

問題

  1. 比如,我們在添加數(shù)據(jù)時,想對數(shù)據(jù)的某些特征值做唯一性判斷,這時,想創(chuàng)建一個RESTful風格的接口就發(fā)現(xiàn)很不適合
    • 首先需要驗證的數(shù)據(jù)沒有資源ID,就無法定位服務器資源
    • 該行為顯然是一種驗證操作,RESTful風格沒有相應的具體的請求方法
    • 若請求方法為POST,如果偽資源目錄后加入操作名,那就和資源ID沖突,感覺很不RESTful
  2. 當我們做多資源操作時,全拼在偽資源目錄后面,要操作資源過多時,會造成url過長的問題,這種時候,把多個資源id放在body里面更為合適

解決方案

自定義接口標準

  • 請求方法(GET,POST
  • 請求路徑http://ip:port/偽資源目錄/操作/資源ID/資源屬性

梨子

  • 域名:www.baidu.com
  • 偽資源目錄:user
  • 操作:
    • 分頁查詢列表:list
    • 添加:add
    • 刪除:delete,remove
    • 修改:update,edit
    • 查詢詳情:detail
    • 刪除多個:remove-multiple,delete-multiple
    • 檢查唯一性:check-unique
  • 資源ID:
    • 用戶名:liuqi
  • 資源屬性:
    • 用戶名:username
    • 密碼:password
    • 郵件地址:email
    • 電話:phone

例如

  • 獲取用戶信息詳情:GET + http://www.baidu.com/user/detail/liuqi
  • 檢查用戶名唯一:POST + http://www.baidu.com/user/check-unique
  • 只修改郵件地址:POST + http://www.baidu.com/user/update/liuqi/email
  • 刪除多個用戶:POST + http://www.baidu.com/user/update/liuqi/email

缺點

  • 請求路徑比RESTful風格的要長
  • 只使用了GET,POST方法

初次學習,多有不足,若有錯誤或者疑問,還請多多指教

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 筆記 RESTful架構風格概述 RESTful架構風格 RESTful架構風格最初由Roy T. Fieldin...
    plutoese閱讀 12,975評論 3 58
  • 一、什么是API? API(Application Programming Interface,應用程序編程接口)...
    Fairy_妍閱讀 63,338評論 2 42
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵勝奧閱讀 5,175評論 0 1
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,674評論 1 32
  • 一說到REST,我想大家的第一反應就是“啊,就是那種前后臺通信方式。”但是在要求詳細講述它所提出的各個約束,以及如...
    時待吾閱讀 3,601評論 0 19

友情鏈接更多精彩內容