spring-boot实战【04】:Spring Boot构建RESTful API

@Controller:修饰class,用来创建处理http请求的对象
@RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。
@RequestMapping:配置url映射

下面我们尝试使用Spring MVC来实现一组对User对象操作的RESTful API,配合注释详细说明在Spring MVC中如何映射HTTP请求、如何传参。

RESTful API具体设计如下:

直接粘代码了:

 1 package com.yucong.yucongdemo.controller;
 2
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.HashMap;
 6 import java.util.List;
 7 import java.util.Map;
 8
 9 import org.springframework.web.bind.annotation.ModelAttribute;
10 import org.springframework.web.bind.annotation.PathVariable;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.bind.annotation.RequestMethod;
13 import org.springframework.web.bind.annotation.RestController;
14
15 import com.yucong.yucongdemo.domain.User;
16
17 @RestController
18 @RequestMapping(value="/users")     // 通过这里配置使下面的映射都在/users下
19 public class UserController {
20
21     // 创建线程安全的Map
22     static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());
23
24     @RequestMapping(value="/", method=RequestMethod.GET)
25     public List<User> getUserList() {
26         // 处理"/users/"的GET请求,用来获取用户列表
27         // 还可以通过@RequestParam从页面中传递参数来进行查询条件或者翻页信息的传递
28         List<User> r = new ArrayList<User>(users.values());
29         return r;
30     }
31
32     @RequestMapping(value="/", method=RequestMethod.POST)
33     public String postUser(@ModelAttribute User user) {
34         // 处理"/users/"的POST请求,用来创建User
35         // 除了@ModelAttribute绑定参数之外,还可以通过@RequestParam从页面中传递参数
36         users.put(user.getId(), user);
37         return "success";
38     }
39
40     @RequestMapping(value="/{id}", method=RequestMethod.GET)
41     public User getUser(@PathVariable Long id) {
42         // 处理"/users/{id}"的GET请求,用来获取url中id值的User信息
43         // url中的id可通过@PathVariable绑定到函数的参数中
44         return users.get(id);
45     }
46
47     @RequestMapping(value="/{id}", method=RequestMethod.PUT)
48     public String putUser(@PathVariable Long id, @ModelAttribute User user) {
49         // 处理"/users/{id}"的PUT请求,用来更新User信息
50         User u = users.get(id);
51         u.setName(user.getName());
52         u.setAge(user.getAge());
53         users.put(id, u);
54         return "success";
55     }
56
57     @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
58     public String deleteUser(@PathVariable Long id) {
59         // 处理"/users/{id}"的DELETE请求,用来删除User
60         users.remove(id);
61         return "success";
62     }
63
64 }
时间: 2024-11-10 13:37:08

spring-boot实战【04】:Spring Boot构建RESTful API的相关文章

spring boot 1.5.4 集成Swagger2构建Restful API(十八)

上一篇博客地址:springboot 1.5.4 整合rabbitMQ(十七) 1      Spring Boot集成Swagger2构建RESTful API文档 1.1  Swagger2简介 Swagger2官网:http://swagger.io/ 由于Spring Boot能够快速开发.便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API.而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会

黑马_13 Spring Boot:04.spring boot 配置文件

13 Spring Boot: 01.spring boot 介绍&&02.spring boot 入门 04.spring boot 配置文件 SpringBoot基础 四.SpringBoot的配置文件 SpringBoot配置文件类型和作用 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties 或者 application.yml (application.yaml)进行配置. app

Spring MVC中使用 Swagger2 构建Restful API

1.maven依赖 <!-- 构建Restful API --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>io.spr

springboot集成swagger2构建RESTful API文档

在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可以在访问接口上,直接添加注释 先介绍一下开发环境: jdk版本是1.8 springboot的版本是1.4.1 开发工具为 intellij idea 我们先引入swagger2的jar包,pom文件引入依赖如下: <dependency> <groupId>io.springfox&

企业分布式微服务云SpringCloud SpringBoot mybatis (二十一)构建restful API

引入依赖 在pom文件引入mybatis-spring-boot-starter的依赖: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter<artifactId> <version>1.3.0</version> </dependency> 引入数据库连接依赖: <

(3)集成swagger2构建Restful API

在taosir父目录的pom.xml中进行版本管理 <swagger.version>2.8.0</swagger.version> 给taosir-api的pom.xml中添加依赖配置 <!-- swagger start --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> &

集成swagger2构建Restful API

集成swagger2构建Restful API 在pom.xml中进行版本管理 <swagger.version>2.8.0</swagger.version> 给taosir-api的pom.xml中添加依赖配置 <!-- swagger start --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</ar

Go实战--通过gin-gonic框架搭建restful api服务(github.com/gin-gonic/gin)

生命不止,继续 go go go !!! 先插播一条广告,给你坚持学习golang的理由: <2017 软件开发薪酬调查:Go 和 Scala 是最赚钱的语言> 言归正传! 之前写过使用golang实现简单的restful api相关的博客: Go实战–实现简单的restful api(The way to go) 其中,使用了github.com/gorilla/mux,今天要跟大家介绍的是gin-gonic/gin. gin-gonic/gin 介绍: Gin is a HTTP web

使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作

使用ASP.NET Core 3.x 构建 RESTful API - 1.准备工作 学习记录.Net CoreWeb Api RESTful API Web API 简介: web API通常是指"使用HTTP协议并通过网络调用的API",由于它使用了HTTP协议,所以需要通过URL信息来指定端点. API 是 Application Programming Intrface 的缩写,是软件的外部接口. 也就是说,针对某个软件,人们可以知道它的外部功能,但并不知道(也不需要知道)它内

使用ASP.NET Core 3.x 构建 RESTful API P6 状态和路由

使用ASP.NET Core 3.x 构建 RESTful API P6 状态和路由 HTTP状态路由 在 .Net Core Web API 项目中,Controller 层是对外层,所以在 Controller 层之下的其它层(如:业务逻辑层,数据库访问层)是如何运作的,与 Controller层无关,所以针对业务结果,在 Controller 层对外表述的时候,我们需要根据也业务结果给出,具体的 HTTP 状态码. 分析一个 Action 方法,此 Action 存在于 Companies