在上一篇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接口的更多相关文章

  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. vim配置C++开发环境 win10

    资料一 —— vim插件的安装 https://www.cnblogs.com/tianzhiyi/p/5338032.html 资料二 —— vim多窗口操作: https://blog.csdn. ...

  2. HDU-5534 Partial Tree 完全背包 设定初始选择

    题目链接:https://cn.vjudge.net/problem/HDU-5534 题意 放学路上看到n个节点,突然想把这几个节点连成一颗树. 树上每个节点有一个清凉度,清凉度是一个关于节点度的函 ...

  3. 代理上网环境配置docker私有库

    最后更新时间:2018年12月27日 Docker使用代理上网去 pull 各类 images,需要做如下配置: 创建目录: /etc/systemd/system/docker.service.d ...

  4. sql limit 的用法

    sql语句里的limit使用方法 .    SELECT * FROM table  LIMIT [offset,] rows | rows OFFSET offset    在我们使用查询语句的时候 ...

  5. [php]如何做到高并发优化

    在实际的开发过程中我们遇到过各种各样的活动,但像用户流量较大的平台就需要考虑高并发的问题,但是如何去解决呢?我总结了几种解决方案,欢迎大家指正! 一.什么是PV/UV/QPS? PV:页面访问量,即P ...

  6. Python学习笔记(4)列表

    2019-02-26 列表(list):①创建方法:用‘[ ]’,将数据包括起来,数据之间用逗号隔开.②空列表:empty = []③增删改查: 1)增加: a.append()方法——将元素添加到列 ...

  7. 2019-03-18 OpenCV Tesseract-OCR 下载 安装 配置(cv2 报错)

    OpenCV 下载 安装 配置 1.下载和Python版本对应的版本,此为下载地址 2.安装(在powershell管理员模式下安装) pip3 install .\opencv_python-3.4 ...

  8. Jquery学习总结(4)——高效Web开发的10个jQuery代码片段

    在过去的几年中,jQuery一直是使用最为广泛的JavaScript脚本库.今天我们将为各位Web开发者提供10个最实用的jQuery代码片段,有需要的开发者可以保存起来. 1.检测Internet ...

  9. ZJU 2671 Cryptography

    Cryptography Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on ZJU. Original I ...

  10. luogu 1865 数论 线性素数筛法

    洛谷 1865 数论 线性素数筛法 最基本的线性素数筛法,当做复习欧拉筛法了,没有尝试过使用更暴力的筛法... WA了一次,手抖没打\n 传送门 (https://www.luogu.org/prob ...