在上一篇SpringBoot实战(一)HelloWorld的基础上,编写一个Restful风格的API接口:

1.根据MVC原则,创建一个简单的目录结构,包括controller和entity,分别创建User对象和UserController控制器:

User类:

  1. package com.example.demo.controller.user.entity;
  2.  
  3. public class User {
  4.  
  5. private Integer id;
  6. private String name;
  7. private String password;
  8. private String phone;
  9.  
  10. public Integer getId() {
  11. return id;
  12. }
  13.  
  14. public void setId(Integer id) {
  15. this.id = id;
  16. }
  17.  
  18. public String getName() {
  19. return name;
  20. }
  21.  
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25.  
  26. public String getPassword() {
  27. return password;
  28. }
  29.  
  30. public void setPassword(String password) {
  31. this.password = password;
  32. }
  33.  
  34. public String getPhone() {
  35. return phone;
  36. }
  37.  
  38. public void setPhone(String phone) {
  39. this.phone = phone;
  40. }
  41. }

UserController

  1. package com.example.demo.controller.user.controller;
  2.  
  3. import com.example.demo.controller.user.entity.User;
  4. import org.springframework.web.bind.annotation.*;
  5.  
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. /**
  10. * 通过RestController注解告知SpringBoot这是一个控制器类
  11. * 通过RequestMapping注解说明统一处理以user开头的URL请求
  12. */
  13. @RestController
  14. @RequestMapping("/user")
  15. public class UserController {
  16.  
  17. /**
  18. * 获取用户列表
  19. * @return
  20. */
  21. @GetMapping("/users")
  22. public List<User> userList(){
  23. List<User> result = new ArrayList<User>();
  24.  
  25. for (int i = 0; i < 3; i++) {
  26. User user = new User();
  27. user.setId(i);
  28. user.setName("name_"+i);
  29. user.setPassword("password_"+i);
  30. user.setPhone("phone_"+i);
  31. result.add(user);
  32. }
  33. return result;
  34. }
  35.  
  36. /**
  37. * 获取特定用户
  38. * @param id
  39. * @return
  40. */
  41. @GetMapping("/users/{id}")
  42. public User getUser(@PathVariable(value="id") Integer id){
  43.  
  44. User user = new User();
  45. user.setId(id);
  46. user.setName("name_"+id);
  47. user.setPassword("password_"+id);
  48. user.setPhone("phone_"+id);
  49. return user;
  50. }
  51.  
  52. /**
  53. * 添加用户
  54. * @param user
  55. * @return
  56. */
  57. @PostMapping("/add")
  58. public String addUser(@RequestBody User user){
  59.  
  60. return "添加成功";
  61. }
  62.  
  63. /**
  64. * 修改用户
  65. * @param id
  66. * @param user
  67. * @return
  68. */
  69. @PutMapping("/users/{id}/update")
  70. public String updateUser(@PathVariable(value="id") Integer id,@RequestBody User user){
  71. return "修改成功";
  72. }
  73.  
  74. /**
  75. * 删除用户
  76. * @param id
  77. * @return
  78. */
  79. @DeleteMapping("/users/{id}/delete")
  80. public String deleteUser(@PathVariable(value="id") Integer id){
  81.  
  82. return "删除成功";
  83. }
  84. }

UserController包括了常用的Get、Post、Put、Delete请求,并使用注解的方式说明了请求路径

路径中的{id}元素是路径参数,可以通过@PathVariable注解获取,具体的参数获取与校验会在下一篇做介绍

使用Postman软件验证了所有接口都是可用的,部分截图如下:

Get:

Post

Put:

SpringBoot实战(二)Restful风格API接口的更多相关文章

  1. Restful风格API接口开发springMVC篇

    Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机 ...

  2. SpringBoot RestFul风格API接口开发

    本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理. 一.概念: REST全称是Representational State Transfer,中 ...

  3. SpringBoot实战(四)获取接口请求中的参数(@PathVariable,@RequestParam,@RequestBody)

    上一篇SpringBoot实战(二)Restful风格API接口中写了一个控制器,获取了前端请求的参数,现在我们就参数的获取与校验做一个介绍: 一:获取参数 SpringBoot提供的获取参数注解包括 ...

  4. 基于MVC的RESTFul风格API实战

    基于MVC的RESTful风格的实现 1.RESTful风格阐述 REST服务是一种ROA(Resource-Oriented Architecture,面向资源的架构)应用.主要特点是方法信息存在于 ...

  5. SpringSecurity权限管理系统实战—二、日志、接口文档等实现

    系列目录 SpringSecurity权限管理系统实战-一.项目简介和开发环境准备 SpringSecurity权限管理系统实战-二.日志.接口文档等实现 SpringSecurity权限管理系统实战 ...

  6. 第03章—打造RESTful风格API

    spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxia ...

  7. 通过beego快速创建一个Restful风格API项目及API文档自动化

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  8. 通过beego快速创建一个Restful风格API项目及API文档自动化(转)

    通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界 ...

  9. RestKit ,一个用于更好支持RESTful风格服务器接口的iOS库

    简介 RestKit 是一个用于更好支持RESTful风格服务器接口的iOS库,可直接将联网获取的json/xml数据转换为iOS对象. 项目主页: RestKit 最新示例: 点击下载 注意: 如果 ...

随机推荐

  1. debian 9 安装无线网卡

    #添加源 echo "deb http://httpredir.debian.org/debian/ stretch main contrib non-free" >> ...

  2. sql where条件子句

    where中可用的运算符: where 的执行 是从右到左: where的SQL优化:(where条件特别多的情况下,效果明显) 对于and,应该尽量把假的放到右边. 对于or,应该尽量把真的放到右边 ...

  3. HTML5常见的面试题,基础知识点

                                                                                    HTML5常见的面试题 一.HTML 常 ...

  4. Linux 上安装 Zookeepr

    一.下载Zookeeper 百度网盘:https://pan.baidu.com/s/1BHV6vHcHIuj7lalvvR7w_g 密码:csvk 二.解压缩包 tar -zxvf zookeepe ...

  5. LeetCode104_MaximumDepthofBinaryTree Java题解

    题目: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the ...

  6. 字符串中连续出现最多的子串 &amp; 字符串中最长反复子串

    字符串中连续出现最多的子串 & 字符串中最长反复子串 字符串中连续出现最多的子串 & 字符串中最长反复子串,这两个问题都能够用后缀数组来表示,至于后缀数组能够參考编程珠玑P156:后缀 ...

  7. TexturePacker 算法

    代码 预览

  8. JDBC-Statement 对象

    Statement 对象 一旦我们获得了数据库的连接,我们就可以和数据库进行交互.JDBC 的 Statement,CallableStatement 和 PreparedStatement 接口定义 ...

  9. 改动android 系统时间

    命令如 date -s "yyyymmdd.[[[hh]mm]ss]" 直接在CRT上执行,举例:date -s "20120801.120503" 但在adb ...

  10. Windows身份验证和混合验证的差别

    两个验证方式的不同主要集中在信任连接和非信任连接.         windows 身份验证相对于混合模式更加安全,使用本连接模式时候,sql不推断sapassword.而仅依据用户的windows权 ...