Jeecg 实现RESTful风格
2016-03-29 10:42
267 查看
package org.jeecgframework.web.rest.controller; import java.net.URI; /** * TSUser的Restful API的Controller. * * @author liuht */ @Controller @RequestMapping(value = "/user") public class UserRestController { @Autowired private UserService userService; @Autowired private Validator validator; /** * 访问地址:http://localhost:8080/jeecg/rest/user * @return */ @RequestMapping(method = RequestMethod.GET) @ResponseBody public List<TSUser> list() { List<TSUser> listUsers=userService.getList(TSUser.class); return listUsers; } /** * 访问地址:http://localhost:8080/jeecg/rest/user/{id} * @param id * @return */ @RequestMapping(value = "/{id}", method = RequestMethod.GET) @ResponseBody public ResponseEntity<?> get(@PathVariable("id") String id) { TSUser task = userService.get(TSUser.class, id); if (task == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } return new ResponseEntity(task, HttpStatus.OK); } @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity<?> create(@RequestBody TSUser user, UriComponentsBuilder uriBuilder) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set<ConstraintViolation<TSUser>> failures = validator.validate(user); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存用户 userService.save(user); //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象. String id = user.getId(); URI uri = uriBuilder.path("/rest/user/" + id).build().toUri(); HttpHeaders headers = new HttpHeaders(); headers.setLocation(uri); return new ResponseEntity(headers, HttpStatus.CREATED); } @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity<?> update(@RequestBody TSUser user) { //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息. Set<ConstraintViolation<TSUser>> failures = validator.validate(user); if (!failures.isEmpty()) { return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST); } //保存 userService.saveOrUpdate(user); //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码. return new ResponseEntity(HttpStatus.NO_CONTENT); } @RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @ResponseStatus(HttpStatus.NO_CONTENT) public void delete(@PathVariable("id") String id) { userService.deleteEntityById(TSUser.class, id); } }
相关文章推荐
- 磁盘缓存 DiskLruCache
- MySql学习笔记(2)-简介
- C#将XML与JSON数据的互相转换
- update inner join
- MATLAB – TreeBagger example
- MapDB
- 学习资料整理
- FreeSwitch cookie设置
- OSD创建OVERLAYEX_RGN 绑定到vi设备通道
- Restful和WeBAPI学习笔记
- Android——Service(服务)
- 68.vivado与modelsim的关联以及器件库编译
- 整除的一个计算
- 图的基本算法(最小生成树)
- Android中Action Bar的使用
- android播放提示音工具类(SoundConfigUtils)
- 原生JS写的一个瀑布流布局-------------提示:需放到服务器下才能运行(XAMPP服务器等)
- Error configuring application listener of class org.springframework.web.context.ContextLoaderListene
- iOS: ARC和非ARC下使用Block属性的问题
- bios导致的kvm_intel失败