码迷,mamicode.com
首页 > 其他好文 > 详细

REST风格的请求格式

时间:2019-10-26 20:44:42      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:sele   它的   page   class   都对   put   http请求   path   etc   

1.什么是rest

答出这两点就够了:

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对应特定的资源,即资源标识。

可以用一个URI(统一资源定位符)指向资源,即每个URI都对应一个特定的资源。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或识别符。

一般的,每个资源至少有一个URI与之对应,最典型的URI即URL。

 1.3 区分URL与URI

需要对HTTP协议更多的理解
URL格式:协议://域名/路径?查询#HASH,实际的一个HTTP请求,还会包括Header(含Cookie、Method等)

资源的URI格式:协议://域名/路径,它只是URL的子集,表征一个资源实体。比如,

 

 

 

2.样例

请求一个“资源”的写法

 

前端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号员工

3. 四种方式

技术图片

 

 

但是默认只有get/post两种方式,怎么配置其他两种方式呢?

从页面发起PUT、DELETE形式的请求?Spring提供了对Rest风格的支持

1)、<!-- 支持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>

 

2)、如何发其他形式请求?

按照以下要求;

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="put"/>

     <input type="submit" value="更新1号图书"/>

</form>

 

REST风格的请求格式

标签:sele   它的   page   class   都对   put   http请求   path   etc   

原文地址:https://www.cnblogs.com/yanl55555/p/11745219.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!