什麼是rest和restful api?
rest:(英文:representational state transfer,簡稱rest)表徵性狀態轉移,是一種軟體架構風格。
restful : restful api就是rest風格的api
restful規範:
1、建議使用https作為網路通訊協議
2、介面的url建議加上'api'字元,清晰地表明此url是乙個介面
3、介面版本號相關字元v1/v2/v3...建議加在介面的url上,表明當前介面的版本號
4、返回值中包含狀態碼或者code,狀態碼標識當前http請求的響應碼,響應碼具體表明的狀態在http協議裡已經做了解釋。而code則是對請求返回狀態的更細的細分,code彌補了狀態碼不夠用的現實,具體的code表明哪種狀態,我們需要跟前端商量決定。
常用狀態碼:
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 - [*]:伺服器發生錯誤,使用者將無法判斷發出的請求是否成功。
5、路徑,把網路上的任何東西都看作資源,restful協議建議我們使用名詞來表明介面url路徑path
6、method:請求方法,restful建議操作同一資源根據不同的http請求方法執行增刪改查等不同的操作
get:從伺服器取出資源
post:建立新的資源
put:更新資源的全部屬性字段
patch:更新資源的區域性屬性字段
delete:從伺服器上刪除資源
7、過濾篩選,restful建議我們把操作資源時的過濾條件加在url上面,多以查詢字串的方式
?age=10&gender=0
8、錯誤處理,當返回值的狀態碼為4xx時,返回錯誤資訊,以便前端展示
9、返回結果,針對不同操作,伺服器向使用者返回的結果應該符合以下規範(具體是否需要返回須看前端需求)。
get/collection:返回資源物件的列表(陣列)
get/collection/resource:返回單個資源物件
post/collection:返回新生成的資源物件
put/collection/resource:返回完整的資源物件
patch/collection/resource:返回完整的資源物件
delete/collection/resource:返回乙個空
10、最好做到hypermedia,即返回結果中提供鏈結,連向其他api(url),使得使用者不查文件,也知道下一步應該做什麼
}
restful規範介紹
團隊之間協作有很多的介面規範,團隊做大了,平台之間的資料傳輸的規範需要定義好。需要有乙個閥,restful 就是這樣的乙個規範,我們都應該遵守這樣的乙個規範。越來越多的人意識到,即軟體,而且是一種新型的軟體 開發,完全可以採用軟體開發的模式。但是傳統上,軟體和網路是兩個不同的領域,網際網路的興起讓這...
restful介面規範
資源 resource 任何東西都是一種資源,例如,一篇部落格文章 表示 representation 資源的一種表現形式,例如,json xml url 每個資源都應該有乙個對應的url uri url是uri的一種,url都有對應的資源,而uri不一定,它強調的是一種資源標識 get 獲得乙個資...
RESTful格式規範
restful是介面開發格式裡面很重要的乙個山頭,基本開發介面都需要遵守這個規範,它共有十條規範格式 1 網域名稱,一般將api放在組網域名稱下 3 路徑,路徑表示api的具體 代表一種資源,中不能使用動詞,只能使用名詞,而其必須是複數 4 使用標準的http方法,由http動詞組成 get sel...