1、Restful 理解

RESTful是一种规范,是微服务的一种标准,rest更容易在代码中看出来,这是开发时候的规范。

REST全称是表述性状态转移,那究竟指的是什么的表述? 其实指的就是资源。任何事物,只要有被引用到的必要,它就是一个资源。资源可以是实体(例如手机号码),也可以只是一个抽象概念(例如价值) 。要让一个资源可以被识别,需要有个唯一标识,在Web中这个唯一标识就是URI(Uniform Resource Identifier)。

为什么会出现Restful

 

在Restful之前的操作:
http://127.0.0.1/user/query/1 GET  根据用户id查询用户数据
http://127.0.0.1/user/save POST 新增用户
http://127.0.0.1/user/update POST 修改用户信息
http://127.0.0.1/user/delete GET/POST 删除用户信息

RESTful用法:
http://127.0.0.1/user/1 GET  根据用户id查询用户数据
http://127.0.0.1/user  POST 新增用户
http://127.0.0.1/user  PUT 修改用户信息
http://127.0.0.1/user  DELETE 删除用户信息

事例:

类 :@RequestMapping("/user")

get:@RequestMapping(value = "{id}", method = RequestMethod.GET)

post:@RequestMapping(method = RequestMethod.POST)

put:@RequestMapping(method = RequestMethod.PUT)

delete:@RequestMapping(method = RequestMethod.DELETE)

有些参数可以直接放到url中 {id},@PathVariable("id")

有些例如实体可以放到body中,然后用@RequestBody Car car

之前的操作是没有问题的,大神认为是有问题的,有什么问题呢?你每次请求的接口或者地址,都在做描述,例如查询的时候用了query,新增的时候用了save,其实完全没有这个必要,我使用了get请求,就是查询.使用post请求,就是新增的请求,我的意图很明显,完全没有必要做描述,这就是为什么有了restful.

如何使用:

解释一下幂等(如果说错了,还请大佬指正,我好做修改,谢谢!!

幂等就是一次请求和多次请求,资源的状态是一样。

①get:只是查询数据,不会影响到资源的变化,因此我们认为它幂等。就是说你多次查询,不会影响到资源,或者说不会新建数据,所以一般用于查询数据

②post和put一般都是用于增、更新的。但post是不幂等的,用于新增,因为你每次新增都会改变资源。而post是幂等的,用于更新,在更新前资源已经存在了,只是去更新一下,本身资源并没有新增。(感觉说的有点问题。。。)

③delete 

对同一个资源删除一次或者多次,结果是一样的,就是资源被删除了,不存在了。所以说也是幂等的。

2、postman如何安装、使用

因为之前项目并未涉及到restful,所以自己就在后台服务写了几个接口,然后用postman去请求。

postman下载插件地址:http://www.cnplugins.com/devtool/postman/download.html

下载后可以按照网上说的集成到chrome中,我按照https://www.cnblogs.com/zqyanywn/p/6947051.html 上面说的并没有成功,可是我点开chrome左上角的 应用,

直接点进去就可以了。

以下是我测试的例子:

在postman中选择请求方式测试即可。

暂时的理解:

查询 get 、新增 post、更新 put、删除 delete

 

尝试了一下传json:

(postman中如何传json: https://blog.csdn.net/wangjun5159/article/details/47781301)

 

总结一下传参数: 

①在url 中写,/test/{id} 用@PathVariable("name") String name

②在url后拼接,/test?id="12",@RequestParam("name") String name

③一般前后台传实体都是需要在前台先转成json,然后放到body中。所以获取实体:@RequestBody Stu stu

 

参考:

https://zhidao.baidu.com/question/373737226952238764.html

https://blog.csdn.net/garfielder007/article/details/55684420

https://www.cnblogs.com/ximenxiazi/p/5850273.html

https://www.cnblogs.com/zqyanywn/p/6947051.html  (postman)

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐