java中rest结尾的类,REST - RESTFUL风格是什么以及Java中怎么使用

什么是 RESTFUL 风格?

REST(英文:Representational State Transfer,简称REST)描述了一个架构样式的网络系统,指的是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful。REST并没有一个明确的标准,而更像是一种设计的风格。

Representational(表述性) : REST 资源实际上可以用各种形式来进行表述,包括 XML、JSON 甚至 HTML——最适合资源使用者的任意形式。

State(状态):当使用 REST 的时候,我们更关注资源的状态而不是对资源采取的行为。

Transfer(转义)*:REST 涉及到转移资源数据,它以某种表述性形式从一个应用转移到另一个应用。

RESTFUL特点

1、每一个URI代表1种资源;

2、客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;

3、通过操作资源的表现形式来操作资源;

4、资源的表现形式是XML或者HTML;

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

CRUD动作

HTTP方法

add(新增)

POST

update(修改)

PUT

delete(删除)

DELETE

get(查询)

GET

一般来说,我们平常都是用的是GET和POST请求,实际上还有很多其他请求方式。在RESTFUL风格里一般就是用上诉这四种对应的关系,但是也不是约定死了的。POST同样也可以用来做查询请求,当我们做某些查询时,希望带的条件是不要暴露出来时。POST也可以用来做修改操作。

RESTFUL在Java中怎么使用

一、传统与REST

方法

传统风格URL

REST风格URL

查询(GET)

/getAllStudent

/sutdent

新增(POST)

/addStudent?name=关羽

/student

修改(PUT)

/updateStudent?id=1&&name=张飞

/student

删除(DELETE)

/deleteStudent?id=1

/student/1

二、Java(Spring)中使用示例

1、创建Student类

使用lombok生成get/set/构造方法

@Data

@AllArgsConstructor

public class Student {

private Long id;

private String name;

private String sex;

}

2、创建Controller类

RESTFUL风格的增删改查。

@RestController

@RequestMapping("/api/v1")

public class TestController {

/**

* 查询所有Student

*/

@GetMapping("/student")

public List getStudents(){

List students = new ArrayList<>();

students.add(new Student(1L,"曹操","男"));

students.add(new Student(2L,"刘备","男"));

students.add(new Student(3L,"孙权","男"));

students.add(new Student(4L,"小乔","女"));

return students;

}

/**

* 分页查询Student

* @param page 当前页

* @param pageSize 一页多少条数据

*/

@GetMapping("/student/{page}/{pageSize}")

public List getStudents(@PathVariable Integer page,@PathVariable Integer pageSize){

List students = new ArrayList<>();

students.add(new Student(1L,"第" + page + "页","男"));

students.add(new Student(2L,"一页查" + pageSize + "条数据","男"));

return students;

}

/**

* 新增Student

* @param student 要新增的Student

*/

@PostMapping("/student")

public Student addStudent(@RequestBody Student student){

return student;

}

/**

* 修改Student

* @param student 要修改的Student

*/

@PutMapping("/student")

public Student updateStudent(@RequestBody Student student){

return new Student(student.getId(),"修改","男");

}

/**

* 删除Student

* @param id 要删除Student的id

*/

@DeleteMapping("/student/{id}")

public Student deleteStudent(@PathVariable Long id){

return new Student(id,"删除","女");

}

}

3、使用POST查看结果

1、查询全部

b714121b463251c57891cb155fd35e9d.png

2、分页查询

e568e26fdd393d4f8a5b3aff4abf0955.png

3、修改

8f6205a99900d02e8a2e74cab34dd1e4.png

4、新增

489af62d9acb15082915f1f792f8c72c.png

5、删除

28ed5e4022ae9ba3b7bebe9bc9a13efd.png

我以前理解的REST风格就是使用GET\POST\DELETE\PUT请求就行了,即在Java中使用对应的@RequestMapping即可,后来才发现,RESTFUL风格在URL地址上就和传统不一样。

本文具体参考:使用RESTful风格开发Java Web

原文讲的很好,更详细,本文只是大概演示了一下用法。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值