# RESTFul API理解

随着互联网和移动设备得发展,人们对Web应用的使用需求也增加,传统的动态页面由于低效率而渐渐被HTML+JavaScript(Ajax)的前后端分离所取代!所以一套结构清晰、符合标准、易于理解、扩展方便让大部分人都能够理解接受的接口风格就显得越来越重要,而RESTful风格的接口(RESTful API)刚好有以上特点,就逐渐被实践应用而变得流行起来

有位大佬总结了一句话,用URL定位资源,用Http请求描述操作!这就是RESTFul的精华。RestFul的特点是:

  • URL:统一资源定位符
  • 以资源为基础
  • 统一接口:对资源的操作包括获取、创建、修改和删除,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法

# HTTP协议

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

# 5. 效果