# RESTFul API理解
随着互联网和移动设备得发展,人们对Web应用的使用需求也增加,传统的动态页面由于低效率而渐渐被HTML+JavaScript(Ajax)的前后端分离所取代!所以一套结构清晰、符合标准、易于理解、扩展方便让大部分人都能够理解接受的接口风格就显得越来越重要,而RESTful风格的接口(RESTful API)刚好有以上特点,就逐渐被实践应用而变得流行起来
有位大佬总结了一句话,用URL定位资源,用Http请求描述操作!这就是RESTFul的精华。RestFul的特点是:
- URL:统一资源定位符
- 以资源为基础
- 统一接口:对资源的操作包括获取、创建、修改和删除,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法
# HTTP协议
# RESTFul和非RESTFul比较
主要用于前后端分离,前端拿到数据只负责展示和渲染,不对数据做任何处理,后端处理数据并以JSON格式传输出去,定义这样一套统一风格的接口,可以叫做RestFul接口。说白了只是一种设计风格!
# 三、示例代码
RESTFul API 示例:
@RestController
public class MyRestController {
@Resource
private UserLoginService userLoginService;
@GetMapping("/users")
public List<UserLogin> queryAll() {
return userLoginService.queryAll();
}
@GetMapping("/users/{id}")
public UserLogin queryById(@PathVariable("id") Integer id) {
return userLoginService.queryById(id);
}
@PostMapping("/users")
public int add(UserLogin userLogin) {
return userLoginService.add(userLogin);
}
@PutMapping("/users/{id}")
public int update(@PathVariable("id") Integer id,
@RequestParam("username") String username,
@RequestParam("password") String password) {
UserLogin user = userLoginService.queryById(id);
user.setUsername(username);
user.setPassword(password);
return userLoginService.update(user);
}
@DeleteMapping("/users/{id}")
public int delete(@PathVariable("id") Integer id) {
return userLoginService.deletebyId(id);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37