1. REST 是Repersentational State Transfer的縮寫
翻譯為"表述性狀態傳遞",那么什么是表述性狀態傳遞呢?為了理解這個詞語,我們從"RESTful是什么"這個問題開始講起。
REST不是標准,是一種設計風格。按照這個設計風格設計出來的API,就叫REST API。
2. 所有的東西都是資源,所有操作都通過對資源的增刪改查(CURD)實現
這個學過編程的應該很好理解,萬物皆對象,在REST中就是"萬物皆資源",每個資源對應一個唯一的全局資源的定位符(URI),資源是整個REST的基礎。其次,就是客戶端可以對資源進行管理,所有的管理操作都是通過HTTP的Action來實現。
3. 對資源的增刪改查對應URL的操作(POST,DELETE,PUT,GET)
4. 所有操作都是無狀態的
也就是不要使用Session
RESTful API示例
下面舉幾個RESTful API的例子,假設下面是一個學校學生信息的項目
- URL: http://localhost/student
- GET /student 獲取學生列表
- POST /student 新學員報到
- GET /student/110 獲取ID為110的學生信息
- PUT /student/110 修改ID為110的學生信息
- DELETE /student/110 刪除ID為110的學生信息
- GET /student/110/home 獲取ID為110的學生的家庭信息
登錄/注銷該怎么設計API呢?
思考一下,我們登錄,肯定是為了登錄后做某些操作,實際上就是向服務器請求一些授權。那么注銷呢,就是請求服務器刪除這個授權。所以不難理解:
POST /teacher 登錄
DELETE /teacher 注銷
URI命名總結規律就是:
/資源名稱
/資源名稱/{資源ID}
/資源名稱/{資源ID}/子資源名稱
/資源名稱/{資源ID}/子資源名稱/{子資源ID}