|
| 1 | +### RESTful Web 服务介绍 |
| 2 | + |
1 | 3 | 本节我们将开发一个简单的 RESTful Web 服务。
|
2 | 4 |
|
3 | 5 | RESTful Web 服务与传统的 MVC 开发一个关键区别是返回给客户端的内容的创建方式:**传统的 MVC 模式开发会直接返回给客户端一个视图,但是 RESTful Web 服务一般会将返回的数据以 JSON 的形式返回,这也就是现在所推崇的前后端分离开发。**
|
4 | 6 |
|
5 | 7 | 为了节省时间,本篇内容的代码是在 **[Spring Boot 版 Hello World & Spring Boot 项目结构分析](https://snailclimb.gitee.io/springboot-guide/#/./start/springboot-hello-world)** 基础上进行开发的。
|
6 | 8 |
|
| 9 | +### 内容概览 |
| 10 | + |
7 | 11 | 通过下面的内容你将学习到下面这些东西:
|
8 | 12 |
|
9 | 13 | 1. Lombok 优化代码利器
|
10 |
| -2. `@RestController` |
| 14 | +2. `@RestController` |
11 | 15 | 3. `@RequestParam`以及`@Pathvairable`
|
12 | 16 | 4. `@RequestMapping`、` @GetMapping`......
|
| 17 | +5. `Responsity` |
13 | 18 |
|
14 |
| -因为本次开发用到了 Lombok 这个简化 Java 代码的工具,所以我们需要在 pom.xml 中添加相关依赖。 |
| 19 | +### 下载 Lombok 优化代码利器 |
| 20 | + |
| 21 | +因为本次开发用到了 Lombok 这个简化 Java 代码的工具,所以我们需要在 pom.xml 中添加相关依赖。如果对 Lombok 不熟悉的话,我强烈建议你去了解一下,可以参考这篇文章:[《十分钟搞懂Java效率工具Lombok使用与原理》](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485385&idx=2&sn=a7c3fb4485ffd8c019e5541e9b1580cd&chksm=cea24802f9d5c1144eee0da52cfc0cc5e8ee3590990de3bb642df4d4b2a8cd07f12dd54947b9&token=1381785723&lang=zh_CN#rd) |
15 | 22 |
|
16 | 23 | ```xml
|
17 | 24 | <dependency>
|
|
25 | 32 |
|
26 | 33 | 
|
27 | 34 |
|
| 35 | +### RESTful Web 服务开发 |
| 36 | + |
28 | 37 | 假如我们有一个书架,上面放了很多书。为此,我们需要新建一个 `Book` 实体类。
|
29 | 38 |
|
30 | 39 | `com.example.helloworld.entity`
|
@@ -87,6 +96,27 @@ public class BookController {
|
87 | 96 | 2. `@RequestMapping` :上面的示例中没有指定 GET 与 PUT、POST 等,因为@RequestMapping默认映射所有HTTP Action,你可以使用`@RequestMapping(method=ActionType)`来缩小这个映射。
|
88 | 97 | 3. ` @PostMapping`实际上就等价于 `@RequestMapping(method = RequestMethod.POST)`,同样的 ` @DeleteMapping` ,`@GetMapping`也都一样,常用的 HTTP Action 都有一个这种形式的注解所对应。
|
89 | 98 | 4. `@PathVariable` :取url地址中的参数。`@RequestParam("name") ` url的查询参数值。
|
| 99 | +5. `@RequestBody`:可以将 *HttpRequest* body 中的 JSON 类型数据反序列化为合适的 Java 类型。 |
| 100 | +6. `ResponseEntity`: **表示整个HTTP Response:状态码,标头和正文内容**。我们可以使用它来自定义HTTP Response 的内容。 |
| 101 | + |
| 102 | +### 运行项目并测试效果 |
| 103 | + |
| 104 | +这里我们又用到了开发 Web 服务必备的 **Postman** 来帮助我们发请求测试。 |
| 105 | + |
| 106 | +**1.使用 post 请求给书架增加书籍** |
| 107 | + |
| 108 | +这里我模拟添加了 3 本书籍。 |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | +**2.使用 Delete 请求删除书籍** |
| 113 | + |
| 114 | +这个就不截图了,可以参考上面发Post请求的方式来进行,请求的 url: [localhost:8333/api/book/1](localhost:8333/api/book/1)。 |
| 115 | + |
| 116 | +**3.使用 Get 请求根据书名获取特定的书籍** |
| 117 | + |
| 118 | +请求的 url:[localhost:8333/api/book?name=book1](localhost:8333/api/book?name=book1) |
90 | 119 |
|
91 | 120 |
|
92 | 121 |
|
| 122 | +代码地址:https://github.com/Snailclimb/springboot-guide/tree/master/start/hello-world |
0 commit comments