RESTful编程风格

什么是RESTful?

RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。

RESTful简介

RESTful首次出现在 2000 年 Roy Fielding 的博士论文中,Roy Fielding是 HTTP 规范的主要编写者之一。

REST

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

在目前主流的三种Web服务交互方案中,REST相比于SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。

RESTful的特点

  1. 每一个URI代表一种资源。

  2. 客户端使用GET、POST、PUT、DELETE这4中表示操作方式的动词对服务器端资源进行操作;

    GET用来获取资源,POST用来新建资源,(也可以用于保存资源),PUT用来更新资源,DELETE用来删除资源。

  3. 通过操作资源的表现形式,来操作资源。

  4. 客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

传统方式与REST方式访问网络资源

  • 传统方式

    http://localhost/user/get?id=1

  • REST风格方式

    http://localhost/user/1

  • 优点

    1. 隐藏了资源的访问行为,通过请求地址无法得知做的是哪种操作。
    2. 简化书写。

RESTful入门使用

值得注意的是SpringMVC框架支持RESTful。

使用RESTful的步骤
  1. 在web.xml中配置SpringMVC对RESTful编程风格的支持过滤器

    web.xml

    <!--开启SpringMVC对RESTful编程风格的访问支持过滤器-->
    <filter>
    	<filter-name>HiddenHttpMethodFilter</filter-name>
    	<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    <filter-mapping>
    	<filter-name>HiddenHttpMethodFilter</filter-name>
        <!--引用配置的DispatcherServlet-->
    	<servlet-name>DispatcherServlet</servlet-name>
    </filter-mapping>
    
  2. 使用RESTFul编程风格,编写控制层处理方法

    @RestController
    @RequestMapping("/rest")
    public class RestfulController {
    
    
        /**
         * @param id 请求地址中的id参数,映射到方法的形参id中
         * @return
         */
        @GetMapping("{id}")
        public String demo2(@PathVariable String id) {
            System.out.println(id);
            return id;
        }
    }
    
  3. 响应结果

    在这里插入图片描述

  4. 注意事项

    1. 处理方法上使用的@GetMapping注解,要求请求方法必须使用GET请求;如果是POST请求,就使用@PostMapping注解,也就是说对用的请求,使用对应的注解,否则会报错。
    2. 请求地址中的参数名,必须和处理方法中的形参的参数名相同,否则会报错。
    3. 处理方法的形参中必须使用@PathVariable注解,从路径中获取参数,否则定义的形参则为null。
    4. 处理类上的@RestController = @@Controller + @ResponseBody的功能,表示当前类配置到Spring容器,并且类中所有的方法的返回值,都是存入响应体中返回,不再通过视图解析。

在页面上如果使用指定的提交方式?

<form action="/user/1" method="post">
    <input type="hidden" name="_method" value="PUT"/>
    <input type="submit"/>
</form>

页面表单使用隐藏域提交请求类型,参数名称固定位method,注意,必须配合提交类型method=post使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值