一、REST简介
● REST(Representational State Transfer),表现形式状态转换
🍹 ◆ 传统风格资源描述形式
查看某个用户的信息 —— http://localhost/user/getById?id=1
保存用户信息 —— http://localhost/user/saveUser
🍹 ◆REST风格(描述资源的一种访问形式)
http://localhost/user/1
http://localhost/user
● 优点
🍹 ◆ 隐藏资源访问行为,无法通过地址得知对资源是何种操作
🍹 ◆ 书写简单
● 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
SpringMVN支持8种,常用4种(GET、POST、PUT、DELETE)
🍹 ◆ http://localhost/users —— 查询全部用户信息 ➠ GET(查询)
🍹 ◆ http://localhost/users/1 —— 查询指定用户信息 ➠ GET(查询)
🍹 ◆ http://localhost/users —— 添加用户信息 ➠ POST(新增/保存)
🍹 ◆ http://localhost/users —— 修改用户信息 ➠ PUT(修改/更新)
🍹 ◆ http://localhost/users/1 —— 删除用户信息 ➠ DELETE(删除)
【注意事项】:上述行为是约定方式,约定不是规范,可以打破(eg:POST可以指保存也可以指新增),所以称为REST风格,而不是REST规范。描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users、books、accounts......
● 按照REST风格对资源进行访问称为RESTful
二、RESTful快速开发(标准开发)
package com.GY.conntroller;
import com.GY.domain.User;
import org.springframework.web.bind.annotation.*;
@RestController //【设置当前控制器类为RESTful风格,等同于@Controller+@ResponseBody两个注解组合功能】
@RequestMapping("/users")
public class UserController {
//添加
/*@RequestMapping(method = RequestMethod.POST)*/
@PostMapping
public String save(){
System.out.println("save user...... ");
return "{'module':'user save'}";
}
//删除
//@PathVariable:参数来自于请求路径(路径变量)
@DeleteMapping("/{id}")
public String delete(@PathVariable Integer id){
System.out.println("delete user...... "+id);
return "{'module':'user delete'}";
}
//修改
/* @RequestMapping(method = RequestMethod.PUT)*/
@PutMapping
public String update(@RequestBody User user){
System.out.println("update user...... "+user);
return "{'module':'user update'}";
}
//查询一个
/* @RequestMapping(value ="/{id}",method = RequestMethod.GET)*/
@GetMapping("/{id}")
public String getById(@PathVariable Integer id){
System.out.println("getById user...... "+id);
return "{'module':'user getById'}";
}
//查询全部
@RequestMapping(method = RequestMethod.GET)
@GetMapping
public String getAll(){
System.out.println("getAll user...... ");
return "{'module':'user getAll'}";
}
}
三、基于RESTful页面数据交互
后台接口开发
实体类
控制器类
package com.GY.conntroller;
import com.GY.domain.User;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
@RestController //【使用@RestController代替(@Controller+@ResponseBody)】
@RequestMapping("/users")
public class UserController {
//保存
/*@RequestMapping(method = RequestMethod.POST)*/
@PostMapping
public String save(User user){
System.out.println("save user==>"+user);
return "{'module':'user save'}";
}
//获取全部
@GetMapping
public List<User> getAll(){
User user1=new User();
user1.setNo(01);
user1.setName("GY");
user1.setMoney(254.1);
User user2=new User();
user2.setNo(02);
user2.setName("WW");
user2.setMoney(1099.8);
List<User>users=new ArrayList<>();
users.add(user1);
users.add(user2);
return users;
}
}
在Apifox中创建请求(测试)
①Post请求
保存成功
①Get请求
获取数据成功
页面访问处理
●先做后台功能,开发接口并调通数据
●再做页面异步调用,确认功能可以正常访问
●最后完成页面数据展示
●放行静态资源访问