(1)Result.java 最终数据类
private Integer code;//状态码,标记数据库操作是否成功 private Object object;//对象,返回给前端的主体数据 private String msg;//消息,返回给前端的提示信息
(2)Code.java 静态常量类
public static final Integer SAVE_OK=10011;//保存成功 public static final Integer DELETE_OK=10021;//删除成功 public static final Integer UPDATE_OK=10031;//更新成功 public static final Integer QUERY_OK=10041;//查询成功 public static final Integer SAVE_ERRO=10010;//保存失败 public static final Integer DELETE_ERRO=10020;//删除失败 public static final Integer UPDATE_ERRO=10030;//更新失败 public static final Integer QUERY_ERRO=10040;//查询失败
(3)ObjectApi.java 中转控制类
@Controller //类注解,解析为controller层逻辑代码,负责前后端数据交互
@CrossOrigin //类注解,解决跨域问题
@RequestMapping //可以是类注解,也可以是方法注解,主要负责映射请求参数对应的具体路径 ( value = "/getMyBook2",//请求路径 produces = {"application/json;charset=UTF-8"} //编码过滤为json类型,utf-8格式 )
@ResponseBody //方法注解,主要负责把处理好的数据返回给前端
@RequestParam //参数注解,解析带参请求 ( value = "id", //前端的参数名称 defaultValue = "222", //默认参数值 required = false //参数可缺省 )Integer id
@RequestBody Book book //参数注解,把 json数据 解析成 对象参数 @PathVariable Integer id //参数注解,解析路径参数,参数名称来自@RequestMapping的value属性
//后端数据封装为最终结果类,返回给前端 List<Book> bookList = bookService.getBooklist(); boolean flag = bookList != null; if(flag) return new Result(Code.QUERY_OK,bookList,"查询成功"); else return new Result(Code.QUERY_ERRO,null,"查询失败");
示例代码:
@RestController // @ResponseBody + @Controller @RequestMapping(value = "/books",produces = {"application/json;charset=UTF-8"}) @CrossOrigin public class BookApi { @Autowired private BookService bookService; @PostMapping public Result save(@RequestBody Book book) { boolean flag = bookService.save(book); return new Result(flag ? Code.SAVE_OK:Code.SAVE_ERRO,flag); } @PutMapping public Result update(@RequestBody Book book) { boolean flag = bookService.update(book); return new Result(flag ? Code.UPDATE_OK:Code.UPDATE_ERRO,flag); } @DeleteMapping("/{id}") public Result delete(@PathVariable Integer id) { boolean flag = bookService.delete(id); return new Result(flag ? Code.DELETE_OK:Code.DELETE_ERRO,flag); } @GetMapping("/{id}") public Result getBookById(@PathVariable Integer id) { Book book = bookService.getBookById(id); boolean flag = book != null; if(flag) return new Result(Code.QUERY_OK,book,"查询成功"); else return new Result(Code.QUERY_ERRO,null,"查询失败"); } @GetMapping public Result getBookList() { List<Book> bookList = bookService.getBooklist(); boolean flag = bookList != null; if(flag) return new Result(Code.QUERY_OK,bookList,"查询成功"); else return new Result(Code.QUERY_ERRO,null,"查询失败"); } @GetMapping("/onShelf") public Result getBookOnShelf() { List<Book> bookList = bookService.getBookOnShelf(); boolean flag = bookList != null; if(flag) return new Result(Code.QUERY_OK,bookList,"查询成功"); else return new Result(Code.QUERY_ERRO,null,"查询失败"); } }