【串線篇】REST風格的請求格式


1.什么是restful風格

答出這兩點就夠了:

1.1 統一接口

rest其實是基於HTTP的,四種方式。

RESTful架構風格規定,數據的元操作,即CRUD(create, read, update和delete,即數據的增刪查改)操作,分別對應於HTTP方法:GET用來獲取資源,POST用來新建資源(也可以用於更新資源),PUT用來更新資源,DELETE用來刪除資源。

這樣就統一了數據操作的接口,僅通過HTTP方法,就可以完成對數據的所有增刪查改工作。即:

  • GET(SELECT):從服務器取出資源(一項或多項)。
  • POST(CREATE):在服務器新建一個資源。
  • PUT(UPDATE):在服務器更新資源(客戶端提供完整資源數據)。
  • PATCH(UPDATE):在服務器更新資源(客戶端提供需要修改的資源數據)。
  • DELETE(DELETE):從服務器刪除資源。

1.2 URI(統一資源定位符)

每個URI(UniformResourceIdentifier)對應特定的資源,即資源標識。

可以用一個URI指向資源,即每個URI都對應一個特定的資源。要獲取這個資源,訪問它的URI就可以,因此URI就成了每一個資源的地址或識別符。

一般的,每個資源至少有一個URI與之對應,最典型的URI即URL。

2. 區分URL與URI

需要對HTTP協議更多的理解

1.URL格式:協議://域名/路徑?查詢#HASH,實際的一個HTTP請求,還會包括Header(含Cookie、Method等)

2.資源的URI格式:協議://域名/路徑,它只是URL的子集,表征一個資源實體。比如,

3.測試樣例

這里給出請求一個“資源”的寫法demo,自己可以根據業務去具體實現

前端jsp:

<%
  pageContext.setAttribute("ctp", request.getContextPath());
%>

項目路徑ctp /order請求隨便起名字比如叫做emp/${id}

后端Controller:

@RequestMapping(value = "/emp/{id}", method = RequestMethod.GET)
public String getEmp(@PathVariable("id") Integer id, Model model) {
        …
}

或者繞過前端之間在地址欄輸入同樣的請求訪問服務器:

localhost:8080/emp/1即可查詢出1號員工

4. restful四種方式

 

但是默認只有get/post兩種方式,怎么配置其他兩種方式呢?

Spring提供了對Rest風格的支持--即從頁面發起PUT、DELETE形式的請求,具體實現如下:

支持Rest風格轉換的filter

去web.xml配置這個filter

<filter>

          <filter-name>HiddenHttpMethodFilter</filter-name>

          <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>

</filter>

<filter-mapping>

          <filter-name>HiddenHttpMethodFilter</filter-name>

          <url-pattern>/*</url-pattern>

 </filter-mapping>

 

filter配置之后開始寫具體的頁面

按照以下要求;

1、創建一個post類型的表單

2、表單項中攜帶一個_method的參數

3、這個_method的值就是DELETE、PUT

代碼示例:

<form action="book/1" method="post">

     <input name="_method" value="put"/>

     <input type="submit" value="更新1號圖書"/>

</form>

<form action="book/1" method="post">

     <input name="_method" value="delete"/>

     <input type="submit" value="刪除1號圖書"/>

</form>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM