REST风格

得意时要看淡,失意时要看开。不论得意失意,切莫大意;不论成功失败,切莫止步。志得意满时,需要的是淡然,给自己留一条退路;失意落魄时,需要的是泰然,给自己觅一条出路REST风格,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

目录

概述

REST访问格式(区分方式)

REST风格-使用案例

表现层代码(使用REST风格)

代码解释

代码的测试

 接收参数注解说明

区别@RequestBody,@Requestparm和@PathVariable


概述

REST(Representational State Transfer) 表现形式状态转换

REST其实就是资源访问路径的一种格式。也可以当成对资源访问路径的书写规范。

之所以说是可以当成,其实REST并不称自己是一种规范而是风格,因为REST刚出来的时候,使用者还不习惯REST风格的写法, 到后来大家都觉得REST风格书写简便,大家都默默规定了这种书写形式。所有可以说是可以当成一种规范来看待。

作用:根据REST规定的形式书写访问路径,书写更简单,访问信息更隐蔽。

根据REST风格对资源进行访问称为RESTful  

REST访问格式(区分方式)

核心:按照REST风格访问资源时使用行为动作来区分对资源进行了何种操作。

 例如现在有book表作为资源,访问路径格式如下 :

访问路径 行为动作 说明
http://localhost/books  GET(查询) 查询全部图书信息
http://localhost/books/1 GET(查询) 查询指定图书信息
http://localhost/books POST(新增/保存) 添加图书信息
http://localhost/books PUT(修改/更新) 修改图书信息
http://localhost/books/1 DELETE(删除) 删除指定图书信息

说明:不用在意写法,格式就是按照行为动作来指定该路径想要实现的功能。我们可以在对应路径Servlet下实现对应功能。后面跟着的数字/参数,我们称为路径参数。Servlet接收参数时,只要声明在方法参数中,方法体引用即可。

REST风格-使用案例

案例只使用表现层作为测试。不关联业务层和数据层。

表现层代码(使用REST风格)

@RestController
@RequestMapping(value = "/books",produces = "application/json; charset=utf-8" )
public class BookController {

    @GetMapping()
    public String getAll(){
        System.out.println("getAll...");
        return "获取所有信息...";
    }

    @GetMapping("/{id}")
    public String selectById(@PathVariable int id){
        System.out.println("selectById..."+ id);
        return "根据id查询单个信息...";
    }
    
    @PostMapping()
    public String save(){
        System.out.println("save...");
        return "保存成功...";
    }

    @DeleteMapping("/{id}")
    public String delete(@PathVariable int id){
        System.out.println( id +"..delete.." );
        return "删除成功...";
    }
}

代码解释

1.@RestController复合注释:结合和@ResponseBody和@Controller两个注释。@ResponseBody声明后可响应数据,@Controller声明为表现层加载bean。

2.@RequestMapping注释:声明Servlet的访问路径,还可设置编码,解决乱码问题。

3. @GetMapping、@PostMapping…看作行为动作,配合@RequestMapping,就可以知道访问路径想要做些什么了。

4.值得注意的是:如果带有路径参数,则需要参考使用案例代码中的DeleteMapping(“/{id}“)方式书写,记得方法需要使用参数接收后使用路径参数,路径参数名和方法形参名要一致。

5.如果需要使用路径参数,记得在参数写注解@PathVariable。

代码的测试

我们如果使用浏览器直接访问,只能使用GET行为动作,不能满足测试要求,所以我们选择一款接口测试工具”PostMan”。可以模拟任意请求方式,符合代码测试需求。

1.先将Tomcat跑起来

REST风格

2.PostMan接口测试 

测试不带路径参数的GET 

REST风格

结果

REST风格

 测试带路径参数的GET

REST风格

 结果

REST风格

REST风格 

测试POST

REST风格

 接收参数注解说明

在上方案例可以看到,路径参数使用了注解@PathVariable,表示参数可以接收路径参数,但是如果接收的是url参数或是json数据的话,@PathVariable就不可用了。那应该用什么呢?

区别@RequestBody,@Requestparm和@PathVariable

1.@RequestBody用来接收json数据。

2.@Requestparm用来接收url地址传参或表单传参。

3.@PathVariable用来接收路径参数

三种接收方式各有不同,最常用的是@RequestBody,因为前后端传参基本是以json的数据格式进行传输,如果使用非json数据传输,可以考虑使用@Requestparm,参数简单且较少,可以考虑使用路径参数,例如传ID值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/154549.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!