SpringBoot实战(二)Restful风格API接口
在上一篇SpringBoot实战(一)HelloWorld的基础上,编写一个Restful风格的API接口:
1.根据MVC原则,创建一个简单的目录结构,包括controller和entity,分别创建User对象和UserController控制器:

User类:
package com.example.demo.controller.user.entity;
public class User {
private Integer id;
private String name;
private String password;
private String phone;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
UserController
package com.example.demo.controller.user.controller; import com.example.demo.controller.user.entity.User;
import org.springframework.web.bind.annotation.*; import java.util.ArrayList;
import java.util.List; /**
* 通过RestController注解告知SpringBoot这是一个控制器类
* 通过RequestMapping注解说明统一处理以user开头的URL请求
*/
@RestController
@RequestMapping("/user")
public class UserController { /**
* 获取用户列表
* @return
*/
@GetMapping("/users")
public List<User> userList(){
List<User> result = new ArrayList<User>(); for (int i = 0; i < 3; i++) {
User user = new User();
user.setId(i);
user.setName("name_"+i);
user.setPassword("password_"+i);
user.setPhone("phone_"+i);
result.add(user);
}
return result;
} /**
* 获取特定用户
* @param id
* @return
*/
@GetMapping("/users/{id}")
public User getUser(@PathVariable(value="id") Integer id){ User user = new User();
user.setId(id);
user.setName("name_"+id);
user.setPassword("password_"+id);
user.setPhone("phone_"+id);
return user;
} /**
* 添加用户
* @param user
* @return
*/
@PostMapping("/add")
public String addUser(@RequestBody User user){ return "添加成功";
} /**
* 修改用户
* @param id
* @param user
* @return
*/
@PutMapping("/users/{id}/update")
public String updateUser(@PathVariable(value="id") Integer id,@RequestBody User user){
return "修改成功";
} /**
* 删除用户
* @param id
* @return
*/
@DeleteMapping("/users/{id}/delete")
public String deleteUser(@PathVariable(value="id") Integer id){ return "删除成功";
}
}
UserController包括了常用的Get、Post、Put、Delete请求,并使用注解的方式说明了请求路径
路径中的{id}元素是路径参数,可以通过@PathVariable注解获取,具体的参数获取与校验会在下一篇做介绍
使用Postman软件验证了所有接口都是可用的,部分截图如下:
Get:

Post

Put:

SpringBoot实战(二)Restful风格API接口的更多相关文章
- Restful风格API接口开发springMVC篇
Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机 ...
- SpringBoot RestFul风格API接口开发
本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理. 一.概念: REST全称是Representational State Transfer,中 ...
- SpringBoot实战(四)获取接口请求中的参数(@PathVariable,@RequestParam,@RequestBody)
上一篇SpringBoot实战(二)Restful风格API接口中写了一个控制器,获取了前端请求的参数,现在我们就参数的获取与校验做一个介绍: 一:获取参数 SpringBoot提供的获取参数注解包括 ...
- 基于MVC的RESTFul风格API实战
基于MVC的RESTful风格的实现 1.RESTful风格阐述 REST服务是一种ROA(Resource-Oriented Architecture,面向资源的架构)应用.主要特点是方法信息存在于 ...
- SpringSecurity权限管理系统实战—二、日志、接口文档等实现
系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...
- 第03章—打造RESTful风格API
spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- 通过beego快速创建一个Restful风格API项目及API文档自动化(转)
通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...
- RestKit ,一个用于更好支持RESTful风格服务器接口的iOS库
简介 RestKit 是一个用于更好支持RESTful风格服务器接口的iOS库,可直接将联网获取的json/xml数据转换为iOS对象. 项目主页: RestKit 最新示例: 点击下载 注意: 如果 ...
随机推荐
- Qt Designer设计 UI 文件并调用
本文介绍的是Qt Designer设计 UI 文件并调用,在坛子里逛了一圈,关于UI方面的好像不怎多,本篇给大家分享一下. AD: 2013云计算架构师峰会超低价抢票中 Qt Designer设计 U ...
- 详解 QT 主要类 QWidget
QWidget类是所有用户界面对象的基类,每一个窗口部件都是矩形,并且它们按Z轴顺序排列的.一个窗口部件可以被它的父窗口部件或者它前面的窗口部件盖住一部分. 先来看内容. AD: 2013云计算架构师 ...
- Sublime 插件Pylinter could not automatically determined the path to lint.py
本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/50618630 安装Sublime Te ...
- oracle间隔分区
http://blog.csdn.net/rznice/article/details/55048876
- spring boot基础
1.ANT下面典型的项目层次结构.(1) src存放文件.(2) class存放编译后的文件.(3) lib存放第三方JAR包.(4) dist存放打包,发布以后的代码. 2.Source Folde ...
- PHP的curl库代码使用
欢迎訪问个人原创地址: http://www.phpthinking.com/archives/468 使用PHP的cURL库能够简单和有效地去抓网页. 你仅仅须要执行一个脚本.然后分析一下你所抓取的 ...
- bzoj3732: Network(最小生成树+LCA)
3732: Network 题目:传送门 题解: 第一眼就看到最大边最小,直接一波最小生成树. 一开始还担心会错,问了一波肉大佬,任意两点在最小生成树上的路径最大边一定是最小的. 那么事情就变得简单起 ...
- 关于linux下QIODevice类进行读取的几个方法的理解
Qt中对读写设备的支持力度很大,其都继承与QIODevice类,其中有几个方法是非常值得注意的,不管是在用原始的serial port进行通信还是使用网络的TCP/IP 或者UDP或者HTTP等协议时 ...
- sicily 1091 Maximum Sum (动规)
//1091.Maximum Sum //b(i,j) = max{b(i,j-1)+a[j], max(b(i-1,t)+a[j])} (t<j) #include <iostream& ...
- PowerDesigner 16.5 安装及破解步骤
安装: 1.双击运行PowerDesigner16.5_Evaluation.exe,进入安装界面,点击(Next)下一步按钮: 2.下拉菜单选择HongKong,选中 I agree to the ...