Spring Boot构建RESTful API
@Controller:修饰class,用来创建处理http请求的对象@RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。@RequestMapping:配置url映射- RESTful API具体设计如下:
| 请求类型 | URL | 功能说明 |
|---|---|---|
| GET | /users | 查询用户列表 |
| POST | /users | 创建一个用户 |
| GET | /users/id | 根据id查询一个用户 |
| PUT | /users/id | 根据id更新一个用户 |
| DELETE | /users/id |
|
User实体定义:
private Long id;
private String name;
private Integer age; // 省略setter和getter
User restful接口声明
@RequestMapping(value = "/users")
public interface UserRestService {
@RequestMapping(value = "/", method = RequestMethod.GET)
List<User> getUserList(); @RequestMapping(value = "/", method = RequestMethod.POST)
String postUser(@ModelAttribute User user); @RequestMapping(value = "/{id}", method = RequestMethod.GET)
User getUser(@PathVariable Long id); @RequestMapping(value="/{id}", method=RequestMethod.PUT)
String putUser(@PathVariable Long id, @ModelAttribute User user); @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
String deleteUser(@PathVariable Long id);
}
接口实现
@RestController
public class UserRestServiceImpl implements UserRestService { static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>()); @Override
public List<User> getUserList() {
List<User> r = new ArrayList<User>(users.values());
return r;
} @Override
public String postUser(@ModelAttribute User user) {
users.put(user.getId(), user);
return "success";
} @Override
public User getUser(@PathVariable Long id) {
return users.get(id);
} @Override
public String putUser(@PathVariable Long id, @ModelAttribute User user) {
User u = users.get(id);
u.setName(user.getName());
u.setAge(user.getAge());
users.put(id, u);
return "success";
} @Override
public String deleteUser(@PathVariable Long id) {
users.remove(id);
return "success";
}
}
验证:
以创建用户为例

response

Spring Boot构建RESTful API的更多相关文章
- 使用 Spring Boot 构建 RESTful API
1. 使用 Idea 创建 Spring Initializer 项目 在创建项目的对话框中添加 Web 和 Lombok,或者建立项目后在 pom.xml 中添加依赖: <dependency ...
- Spring Boot构建RESTful API与单元测试
如果您对Spring MVC不熟悉并且还没有尝试过快速入门案例,建议先看一下相关的内容. @Controller:修饰class,用来创建处理http请求的对象 @RestController:Spr ...
- Spring Boot构建 RESTful 风格应用
Spring Boot构建 RESTful 风格应用 1.Spring Boot构建 RESTful 风格应用 1.1 实战 1.1.1 创建工程 1.1.2 构建实体类 1.1.4 查询定制 1.1 ...
- Spring Boot2 系列教程(三十一)Spring Boot 构建 RESTful 风格应用
RESTful ,到现在相信已经没人不知道这个东西了吧!关于 RESTful 的概念,我这里就不做过多介绍了,传统的 Struts 对 RESTful 支持不够友好 ,但是 SpringMVC 对于 ...
- 基于Spring Boot的RESTful API实践(一)
1. RESTful简述 REST是一种设计风格,是一组约束条件及原则,而遵循REST风格的架构就称为RESTful架构,资源是RESTful的核心,一个好的RESTful架构,通过URL就能很 ...
- Spring Boot中Restful Api的异常统一处理
我们在用Spring Boot去向前端提供Restful Api接口时,经常会遇到接口处理异常的情况,产生异常的可能原因是参数错误,空指针异常,SQL执行错误等等. 当发生这些异常时,Spring B ...
- spring boot构建restful服务
使用spring boot快速构建出restful服务 JPA实现REST 创建spring boot项目,在项目文件pom.xml中添加以下依赖: <dependency> <gr ...
- 通过spring boot提供restful api
1 将返回设置为produces = "application/json" 返回给客户端json格式的response. 2 对各种异常的处理 各种异常如何返回给客户端? 各种异常 ...
- Spring Boot 入门系列(二十二)使用Swagger2构建 RESTful API文档
前面介绍了如何Spring Boot 快速打造Restful API 接口,也介绍了如何优雅的实现 Api 版本控制,不清楚的可以看我之前的文章:https://www.cnblogs.com/zha ...
随机推荐
- .NET:C#的匿名委托 和 Java的匿名局部内部类
背景 这几天重温Java,发现Java在嵌套类型这里提供的特性比较多,结合自身对C#中匿名委托的理解,我大胆的做了一个假设:Java的字节码只支持静态嵌套类,内部类.局部内部类和匿名局部内部类都是编译 ...
- [Lua]mac 上安装lua
mac 安装lua google了好个看起来都不怎么好操作.这个是在命令行下操作的非常easy. curl -R -O http://www.lua.org/ftp/lua-5.2.3.tar.gz ...
- Android开发project师,前行路上的14项技能
导读: 你是否曾渴望回到宋朝? 或者什么朝,反正就是男耕女织的古代. 哦,那时的首都在汴梁(开封),房价想必没有如今这么高,工作?无非就是给你把锄头,去,种地去.夕阳西下了,麦子垛后,你和翠姑搂抱在一 ...
- 最大的Redis集群:新浪Redis集群揭秘
前言 Tape is Dead,Disk is Tape,Flash is Disk,RAM Locality is King. — Jim Gray Redis不是比较成熟的Memcac ...
- 深度Linux Deepin系统安装教程使用体验
很早以前,试用过一次深度的OS,那时深度刚出自己的Linux修改版系统,过了有两年了,准备看看Deepin OS有什么变化,和雨林木风的Start OS比,有什么不同 1.安装的引导菜单和Start ...
- osglightpoint例子 [转]
该例子演示了光点的效果,主要应用osgSim库中的LightPoint.LightPointNode. SequenceGroup.BlinkSequence,osgSim库属于仿真库,扩展库.应用o ...
- javascript学习笔记------概念相关
javascript中的函数.对象 1. 在javascript中,函数是被当成一种数据类型,它可以被存储在一个变量.数组.对象中,可以被当作参数传递到另一个函数中. 函数就像是字符串和数字这样的的数 ...
- myBatis批量添加,修改和删除
摘自: http://blog.csdn.net/myjlvzlp/article/details/8434376 1.批量添加元素session.insert(String string,Objec ...
- shared memory segment exceeded your kernel's SHMMAX parameter
http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server IpcMemoryCreate: shmget(key=5432001, s ...
- Python 转义符
定义字符串前面我们讲解了什么是字符串.字符串可以用''或者""括起来表示.如果字符串本身包含'怎么办?比如我们要表示字符串 I'm OK ,这时,可以用" "括 ...