RESTFul API 特點解析

RESTFul API 基于 REST 的 API 設(shè)計理論:

  • 通常來說,使用 JSON 描述數(shù)據(jù)
  • 無狀態(tài)(第二個請求不需要依賴第一個請求)

REST 提倡基于資源,增刪改查都是對于資源狀態(tài)的改變。
表示資源的方式是通過 url,所以 url 都提倡為名詞。
通過 http 動詞來描述資源的增刪改查,例如:GET、POST、PUT、DELETE。

設(shè)計:
錯誤示例:
/getmovie/:mid
正確示例:
GET: /movie/:mid

RESTFul API 實踐

  • http 動詞:
    POST:創(chuàng)建
    PUT:更新
    GET:查詢
    DELETE:刪除
  • 明確意義的狀態(tài)碼:
    常用:
    404 - 資源沒有找到
    400 - 參數(shù)校驗錯誤
    200 - 查詢操作 GET 請求執(zhí)行成功
    201 - 創(chuàng)建操作 POST 請求執(zhí)行成功
    202 - 更新操作 PUT 請求執(zhí)行成功
    401 - 未授權(quán)、沒有權(quán)限訪問該接口
    403 - 有權(quán)限,但由于特殊原因,不允許訪問(防止A用戶傳B用戶id來操作B用戶的數(shù)據(jù))
    500 - 服務(wù)器的未知錯誤,1.未知的 bug。2.我知道是哪里的 bug,但這是我的服務(wù)器的原因,并不想讓客戶端知道。
  • 錯誤碼:
    自定義的錯誤ID號
  • 統(tǒng)一描述錯誤:
    錯誤碼、錯誤信息、當前URL
  • 使用 Token 令牌來授權(quán)和驗證身份。
  • 版本控制
  • 測試與生產(chǎn)環(huán)境分開
    api.xxx.com
    dev.api.xxx.com
  • 最好有一份比較標準的文檔

RESTFull API 異常分類

  • 由于客戶端行為導致的異常(沒有通過驗證器,沒有查到結(jié)果)
    通常不需要記錄日志,需要向客戶端返回具體的信息
  • 服務(wù)器自身異常(代碼錯誤,調(diào)用外部接口錯誤)
    通常記錄日志,不向客戶端返回具體原因

以上只是通常情況,具體情況具體分析。比如說有個客戶端 ip 頻繁的抓取數(shù)據(jù),這時候也可以記錄日志進行觀察。

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

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評論 19 139
  • 去年有段時間得空,就把谷歌GAE的API權(quán)威指南看了一遍,收獲頗豐,特別是在自己幾乎獨立開發(fā)了公司的云數(shù)據(jù)中心之后...
    騎單車的勛爵閱讀 21,132評論 0 41
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,966評論 1 92
  • 一說到REST,我想大家的第一反應(yīng)就是“啊,就是那種前后臺通信方式?!钡窃谝笤敿氈v述它所提出的各個約束,以及如...
    時待吾閱讀 3,602評論 0 19
  • 1、VI(視覺識別系統(tǒng)) 2、VI延展是一個自我發(fā)現(xiàn)和自我升華的過程,也是提升能力最快的途徑。(臨摹也是,前提是臨...
    林窗鯨落閱讀 905評論 0 0

友情鏈接更多精彩內(nèi)容