一、RESTful API 路由

REST 介紹:https://www.jianshu.com/p/9bb7e6c683a3

restful其實本身並不是一個新鮮的東西,最早是在2000年由Roy Thomas Fielding博士在他的博士論文中提出。這個設計思想過於超前,所以早些年一直處於不温不火的狀態。直到近年來,互聯網業務高速發展,系統架構越來越複雜,移動互聯網的興起,前後端分離架構的流行,人們發現原來這套用於超文本傳輸的協議是如此適合用於設計基於互聯網的api接口,基於http動詞以及標準的http status返回信息,能夠非常好的描述api的特性,並且可讀性非常好。

早期的路由設計,一般是一個功能一個路由,容易產生歧義,不優雅

localhost:3000/student_add?id=12&name=張三&sex=男

localhost:3000/student_del?id=12

/student_upate?id=2

/student_edit?id=2

/student_modify?id=2

RESTful 路由:結構清晰簡單、易於理解,不會產生歧義,擴展方便,正得到越來越多互聯網項目的使用。

特點:

GET localhost:3000/student/id/12 訪問id為12的學生信息

POST localhost:3000/student/id/12 修改id為12的學生信息

DELETE localhost:3000/student/id/12 刪除id為12的學生

propfind localhost:3000/student/id/12 查看id為12的學生有沒有被佔用

PUT localhost:3000/student/id/12 添加一個id為12的學生信息

GET localhost:3000/teacher/id/122

總結:路由中只有“名詞”,具體幹啥由“動詞”(請求方法)決定

express可以識別的http請求類型:

checkout move patch lock unlock head copy connect ....

RESTful API 除了http 請求方法,還設計好了常用的狀態碼:

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 - [*]:服務器發生錯誤,用户將無法判斷髮出的請求是否成功。