RESTful API 設(shè)計規(guī)范

一個架構(gòu)符合REST(REpresentational State Transfer)原則,就稱它為RESTful架構(gòu)。

資源 (Resources)

URI (Uniform Resource Identifiers) 統(tǒng)一資源標示符

URI = scheme "://" authority "/" path [ "?" query ] [ "#" fragment ]

URI規(guī)范:

  • URI不包含動詞,使用名詞復數(shù)。
  • URI不使用大寫。
  • URI層級不要太深。

URL(Uniform Resource Locator) 統(tǒng)一資源定位符(URI的實現(xiàn))

對于REST API來說一個資源對應(yīng)一個唯一的URI(URL)

表現(xiàn)(Representation)

HTTP請求的頭信息中,用Accept和Content-Type標示。

狀態(tài)轉(zhuǎn)化(State Transfer)

  • GET:獲取資源
    GET /zoos
    GET /zoos/1
    GET /zoos/1/employees
    GET /zoos/1/employeessortby=name&order=asc

  • POST:新建資源(也可以更新資源)
    POST /animals 新增動物
    POST /zoos/1/employees 新增動物園1雇員

  • PUT:更新單個資源 全量更新
    PUT /animals/1
    PUT /zoos/1

  • DELETE:刪除資源
    DELETE /zoos/1/animals //刪除id為1的動物園內(nèi)的所有動物

常見異常返回碼

  • 400 bad request 常用在參數(shù)校驗
  • 401 unauthorized 未經(jīng)驗證的用戶,常見于未登錄。如果經(jīng)過驗證后依然沒權(quán)限,應(yīng)該 403(即 authentication 和 authorization 的區(qū)別)。
  • 403 forbidden 無權(quán)限
  • 404 not found 資源不存在
  • 500 internal server error 代碼邏輯錯誤導致,比如數(shù)據(jù)庫連接失敗、空指針異常、除0錯誤

異步任務(wù)

由于互聯(lián)網(wǎng)通信 高延時(high latency)、高并發(fā)等特點 異步任務(wù)派上大用場。

  1. 先返回任務(wù)創(chuàng)建成功
  2. 客戶端輪詢?nèi)蝿?wù)狀態(tài)

規(guī)范是提高效率的利器

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 前言 網(wǎng)絡(luò)應(yīng)用程序,分為前端和后端兩個部分。當前的發(fā)展趨勢,就是前端設(shè)備層出不窮(手機、平板、桌面電腦、其他專用設(shè)...
    小白frankie閱讀 443評論 0 1
  • 一說到REST,我想大家的第一反應(yīng)就是“啊,就是那種前后臺通信方式。”但是在要求詳細講述它所提出的各個約束,以及如...
    時待吾閱讀 3,467評論 0 19
  • API定義規(guī)范 本規(guī)范設(shè)計基于如下使用場景: 請求頻率不是非常高:如果產(chǎn)品的使用周期內(nèi)請求頻率非常高,建議使用雙通...
    有涯逐無涯閱讀 2,596評論 0 6
  • 簡介 zabbix是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級的開源解決方案。zabbix能監(jiān)...
    guo的學習筆記閱讀 2,253評論 0 1
  • 父母教練分享內(nèi)容包括但不限于: 本周目標完成情況? 學習:學會玉米娃、6-10 生活:堅持早起早睡,睡前清單和清晨...
    caoxixi閱讀 208評論 0 0