Spring Boot 教程 RESTful 1. RESTful風格 1.1 簡介與特點 RESTful是一種網路應用程式的設計風格和開發方式,基於 "HTTP" ,可以使用 "XML" 格式定義或 "JSON" 格式定義。RESTful適用於移動互聯網廠商作為業務使能介面的場景,實現第三方 "O ...
Spring Boot 教程 - RESTful
1. RESTful風格
1.1 簡介與特點
RESTful是一種網路應用程式的設計風格和開發方式,基於HTTP,可以使用XML格式定義或JSON格式定義。RESTful適用於移動互聯網廠商作為業務使能介面的場景,實現第三方OTT調用移動網路資源的功能,動作類型為新增、變更、刪除所調用資源。
RESTful特點包括:
1、每一個URI代表1種資源;
2、客戶端使用GET、POST、PUT、DELETE4個表示操作方式的動詞對服務端資源進行操作:GET用來獲取資源,POST用來新建資源 (也可以用於更新資源),PUT用來更新資源,DELETE用來刪除資源(PATCH則比較少用到);
3、通過操作資源的表現形式來操作資源;
4、資源的表現形式是XML或者HTML;
5、客戶端與服務端之間的交互在請求之間是無狀態的,從客戶端到服務端的每個請求都必須包含理解請求所必需的信息。
1.2 RESTful架構
RESTful架構是對MVC架構改進後所形成的一種架構,通過使用事先定義好的介面與不同的服務聯繫起來。在RESTful架構中,瀏覽器使用POST,DELETE,PUT和GET四種請求方式分別對指定的URL資源進行增刪改查操作。因此,RESTful是通過URI實現對資源的管理及訪問,具有擴展性強、結構清晰的特點。
RESTful架構將伺服器分成前端伺服器和後端伺服器兩部分,前端伺服器為用戶提供無模型的視圖;後端伺服器為前端伺服器提供介面。瀏覽器向前端伺服器請求視圖,通過視圖中包含的AJAX函數發起介面請求獲取模型。
項目開發引入RESTful架構,利於團隊並行開發。在RESTful架構中,將多數HTTP請求轉移到前端伺服器上,降低伺服器的負荷,使視圖獲取後端模型失敗也能呈現。但RESTful架構卻不適用於所有的項目,當項目比較小時無需使用RESTful架構,項目變得更加複雜。所以要根據項目的實際情況評估是否使用RESTful架構,在如今這種架構也是越來越流行的。接下來帶領大家展示一下RESTful風格的調用。
2 RESTful開發
2.1 常見的RESTful風格調用
-
GET
:請求從伺服器獲取特定資源。舉個例子:GET /student(獲取所有學生)。/** * GET :請求從伺服器獲取特定資源。舉個例子:GET /student(獲取所有學生) * @return List<Student> */ @GetMapping("/student") public List<Student> student() { return studentService.findAll(); }
-
GET
:請求從伺服器獲取特定資源。舉個例子:GET /student/1(獲取id為1學生)。/** * GET :請求從伺服器獲取特定資源。舉個例子:GET /student/1(獲取id為1學生) * @param id * @return Student */ @GetMapping("/student/{id}") public Student student(@PathVariable("id") Long id) { return studentService.findOne(id); }
-
POST
:在伺服器上創建一個新的資源。舉個例子:POST /student(添加學生)。/** * POST :在伺服器上創建一個新的資源。舉個例子:POST /student(添加學生) * @param student */ @PostMapping("/student") public void student(@RequestBody Student student) { studentService.add(student); }
-
PUT
:更新伺服器上的資源(客戶端提供更新後的資源)。舉個例子:PUT /student/1(更新學號為 1 的學生的所有信息)。/** * PUT :更新伺服器上的資源(客戶端提供更新後的資源)。舉個例子:PUT /student/1(更新學號為 1 的學生的所有信息) * @param id */ @PutMapping("/student/{id}") public void updateById(@PathVariable("id") Long id, Student student) { studentService.updateAll(id,student); }
-
DELETE
:從伺服器刪除特定的資源。舉個例子:DELETE /student/1(刪除學號為 1 的學生)。/** * DELETE :從伺服器刪除特定的資源。舉個例子:DELETE /student/1(刪除學號為 1 的學生) * @param id */ @DeleteMapping("/student/{id}") public void deleteById(@PathVariable("id") Long id) { studentService.delete(id); }
常用的主要就是這些請求方式,其他的請求方式都用的非常的少,但是我在代碼里也有寫,有興趣的可以去我的Github看看代碼,Github連接地址在博客的末尾。
3. 項目地址
本項目傳送門:spring-boot-RESTful
此教程會一直更新下去,覺得博主寫的可以的話,關註一下,也可以更方便下次來學習。