RESTful是一種網絡應用程序的設計風格和開發方式,基於HTTP,可使用XML格式定義或JSON格式定義。RESTful適用於移動互聯網廠商做爲業務使能接口的場景,實現第三方OTT調用移動網絡資源的功能,動做類型爲新增、變動、刪除所調用資源。前端
RESTful特色包括:java
一、每個URI表明1種資源;git
二、客戶端使用GET、POST、PUT、DELETE4個表示操做方式的動詞對服務端資源進行操做:GET用來獲取資源,POST用來新建資源 (也能夠用於更新資源),PUT用來更新資源,DELETE用來刪除資源(PATCH則比較少用到);github
三、經過操做資源的表現形式來操做資源;spring
四、資源的表現形式是XML或者HTML;後端
五、客戶端與服務端之間的交互在請求之間是無狀態的,從客戶端到服務端的每一個請求都必須包含理解請求所必需的信息。瀏覽器
RESTful架構是對MVC架構改進後所造成的一種架構,經過使用事先定義好的接口與不一樣的服務聯繫起來。在RESTful架構中,瀏覽器使用POST,DELETE,PUT和GET四種請求方式分別對指定的URL資源進行增刪改查操做。所以,RESTful是經過URI實現對資源的管理及訪問,具備擴展性強、結構清晰的特色。服務器
RESTful架構將服務器分紅前端服務器和後端服務器兩部分,前端服務器爲用戶提供無模型的視圖;後端服務器爲前端服務器提供接口。瀏覽器向前端服務器請求視圖,經過視圖中包含的AJAX函數發起接口請求獲取模型。restful
項目開發引入RESTful架構,利於團隊並行開發。在RESTful架構中,將多數HTTP請求轉移到前端服務器上,下降服務器的負荷,使視圖獲取後端模型失敗也能呈現。但RESTful架構卻不適用於全部的項目,當項目比較小時無需使用RESTful架構,項目變得更加複雜。因此要根據項目的實際狀況評估是否使用RESTful架構,在現在這種架構也是愈來愈流行的。接下來帶領你們展現一下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鏈接地址在博客的末尾。
本項目傳送門:spring-boot-RESTful
此教程會一直更新下去,以爲博主寫的能夠的話,關注一下,也能夠更方便下次來學習。