RESTful測試地址html
JSONPlaceholdergit
http://jsonplaceholder.typicode.com/ https://github.com/typicode/jsonplaceholder#how-to
HTTP動詞github
GET(SELECT):從服務器取出資源(一項或多項)。 POST(CREATE):在服務器新建一個資源。 PUT(UPDATE):在服務器更新資源(客戶端提供改變後的完整資源)。 PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。 DELETE(DELETE):從服務器刪除資源。 HEAD:獲取資源的元數據。 OPTIONS:獲取信息,關於資源的哪些屬性是客戶端能夠改變的。
例子:json
GET /tickets # 獲取ticket列表 GET /tickets/12 # 查看某個具體的ticket POST /tickets # 新建一個ticket PUT /tickets/12 # 更新ticket 12. DELETE /tickets/12 #刪除ticekt 12
資源api
單資源 (singular-resourceX )服務器
url樣例:order/ (order即指那個單獨的資源X) GET - 返回一個新的order POST- 建立一個新的order,從post請求攜帶的內容獲取值。
單資源帶id (singular-resourceX/{id} )restful
URL樣例:order/1 ( order即指那個單獨的資源X ) GET - 返回id是1的order DELETE - 刪除id是1的order PUT - 更新id是1的order,order的值從請求的內容體中獲取。
複數資源 (plural-resourceX/)app
URL樣例:orders/ GET - 返回全部orders
複數資源查找(plural-resourceX/search)異步
URL樣例:orders/search?name=123 GET - 返回全部知足查詢條件的order資源。(實例查詢,無關聯) - order名字等於123的。
複數資源查找(plural-resourceX/searchByXXX)post
URL樣例:orders/searchByItems?name=ipad GET - 將返回全部知足自定義查詢的orders - 獲取全部與items名字是ipad相關聯的orders。
單數資源(singular-resourceX/{id}/pluralY)
URL樣例:order/1/items/ (這裏order即爲資源X,items是複數資源Y) GET - 將返回全部與order id 是1關聯的items。 singular-resourceX/{id}/singular-resourceY/ URL樣例:order/1/item/ GET - 返回一個瞬時的新的與order id是1關聯的item實例。 POST - 建立一個與order id 是1關聯的item實例。Item的值從post請求體中獲取。 singular-resourceX/{id}/singular-resourceY/{id}/singular-resourceZ/ URL樣例:order/1/item/2/package/ GET - 返回一個瞬時的新的與item2和order1關聯的package實例。 POST - 建立一個新的與item 2和order1關聯的package實例,package的值從post請求體中得到。
狀態碼
200 OK - [GET]:服務器成功返回用戶請求的數據,該操做是冪等的(Idempotent)。 201 CREATED - [POST/PUT/PATCH]:用戶新建或修改數據成功。 202 Accepted - [*]:表示一個請求已經進入後臺排隊(異步任務) 204 NO CONTENT - [DELETE]:用戶刪除數據成功。 400 INVALID REQUEST - [POST/PUT/PATCH]:用戶發出的請求有錯誤,服務器沒有進行新建或修改數據的操做,該操做是冪等的。 401 Unauthorized - [*]:表示用戶沒有權限(令牌、用戶名、密碼錯誤)。 403 Forbidden - [*] 表示用戶獲得受權(與401錯誤相對),可是訪問是被禁止的。 404 NOT FOUND - [*]:用戶發出的請求針對的是不存在的記錄,服務器沒有進行操做,該操做是冪等的。 406 Not Acceptable - [GET]:用戶請求的格式不可得(好比用戶請求JSON格式,可是隻有XML格式)。 410 Gone -[GET]:用戶請求的資源被永久刪除,且不會再獲得的。 422 Unprocesable entity - [POST/PUT/PATCH] 當建立一個對象時,發生一個驗證錯誤。 500 INTERNAL SERVER ERROR - [*]:服務器發生錯誤,用戶將沒法判斷髮出的請求是否成功。
參考
RESTful API 設計最佳實踐 http://blog.jobbole.com/41233/ RESTful 接口規範 http://www.coderli.com/translate-restful-standard-resolved/ RESTful HTTP的實踐 http://www.infoq.com/cn/articles/designing-restful-http-apps-roth RESTful API 設計指南 http://www.ruanyifeng.com/blog/2014/05/restful_api.html