• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

Recommended Posts

REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标准,是一种思想

Rest架构的主要原则:

网络上的所有事物都被抽象为资源

每个资源都有一个唯一的资源标识符

同一个资源具有多种表现形式(xml,json等)

对资源的各种操作不会改变资源标识符

所有的操作都是无状态的

符合休息原则的架构方式即可称为安静的

什么是Restful:

对应的中文是休息式的;Restful web服务是一种常见的休息的应用,是遵守了休息风格的网服务;

休息式的网服务是一种面向资源的体系结构(面向资源的架构).

为什么会出现Restful

在安静的之前的操作:

http://127 .0 .0 .1/用户/查询/1获取根据用户编号查询用户数据

http://127 .0 .0 .1/用户/保存帖子新增用户

http://127 .0 .0 .1/用户/更新帖子修改用户信息

http://127 .0 .0 .1/用户/删除/1获取/发布删除用户信息

安静的用法:

http://127 .0 .0 .1/用户/1获取根据用户编号查询用户数据

http://127 .0 .0 .1/用户帖新增用户

http://127 .0 .0 .1/用户上传修改用户信息

http://127 .0 .0 .1/用户删除删除用户信息

之前的操作是没有问题的,大神认为是有问题的,

有什么问题呢?你每次请求的接口或者地址,都在做描述,例如查询的时候用了查询,新增的时候用了保存,其实完全没有这个必要,

我使用了得到请求,就是查询。使用邮政请求,就是新增的请求,我的意图很明显,完全没有必要做描述,这就是为什么有了宁静。

如何使用:

qb5yb33blka3645.png

学习笔记一实现安静的服务:

学习笔记一原生态的支持了休息风格的架构设计

所涉及到的注解:

- @RequestMapping

-@路径变量

- @ResponseBody

包cn。它投了。我的巴蒂斯。控制器;

导入org。spring框架。豆子。工厂。注释。自动连线;

导入org。spring框架。http。http状态;

导入org。spring框架。http。响应实体;

导入org。spring框架。刻板印象。控制器;

导入org。spring框架。网络。绑定。注释。路径变量;

导入org。spring框架。网络。绑定。注释。请求映射;

导入org。spring框架。网络。绑定。注释。请求方法;

导入org。spring框架。网络。绑定。注释。请求参数;

导入org。spring框架。网络。绑定。注释。响应正文;

导入cn。它投了。我的巴蒂斯。POJO。用户;

导入cn。它投了。我的巴蒂斯。服务。新用户服务;

@RequestMapping('restful/user ')

@控制器

公共类RestUserController {

@自动连线

私有新用户服务

/**

* 根据用户编号查询用户数据

*

* @param id

* @返回

*/

@请求映射(value="{ id } ",方法=请求方法.获取)

@ResponseBody

公共响应实体用户queryUserById(@ path变量(' Id ')长id){

尝试{

用户user=this。新用户服务。queryuserbyid(id);

if (null==user) {

//资源不存在,响应404

返回响应实体。状态(http状态.未_找到)。正文(空);

}

//200

//返回响应实体。状态(http状态.好的)。正文(用户);

返回ResponseEntity.ok(用户);

} catch(异常e) {

e。printstacktrace();

}

//500

返回响应实体。状态(http状态.内部服务器错误)。正文(空);

}

/**

* 新增用户

*

* @param用户

* @返回

*/

@ request mapping(method=请求方法.帖子)

公共响应EntityVoid saveUser(用户用户){

尝试{

this.newUserService.saveUser(用户);

返回响应实体。状态(http状态.已创建)。build();

} catch(异常e) {

//TODO自动生成的捕捉块

e。printstacktrace();

}

//500

返回响应实体。状态(http状态.内部服务器错误)。正文(空);

}

/**

* 更新用户资源

*

* @param用户

* @返回

*/

@ request mapping(method=请求方法.放)

公共响应EntityVoid更新用户(用户用户){

尝试{

this.newUserService.updateUser(用户);

返回响应实体。状态(http状态.NO_CONTENT).build();

} catch(异常e) {

e。printstacktrace();

}

//500

返回响应实体。状态(http状态.内部服务器错误)。正文(空);

}

/**

* 删除用户资源

*

* @param用户

* @返回

*/

@ request mapping(method=请求方法.删除)

公共响应entity void deleteUser(@ request param(value=' id ',defaultValue='0') Long id) {

尝试{

if (id.intValue()==0) {

//请求参数有误

返回响应实体。状态(http状态.坏_请求)。build();

}

这个。新用户服务。deleteuserbyid(id);

//204

返回响应实体。状态(http状态.NO_CONTENT).build();

} catch(异常e) {

e。printstacktrace();

}

//500

返回响应实体。状态(http状态.内部服务器错误)。正文(空);

}

}

超文本传送协议相应状态码:

tp2qeh5h1w23646.png

那么安静的接口的缺点是什么呢?欢迎讨论

转载自https://www.jianshu.com/p/7893169a7c93

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now