Skip to content

Commit 785ca19

Browse files
committed
Update sringboot-restful-web-service.md
1 parent d4f85dd commit 785ca19

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

docs/basis/sringboot-restful-web-service.md

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
1+
### RESTful Web 服务介绍
2+
13
本节我们将开发一个简单的 RESTful Web 服务。
24

35
RESTful Web 服务与传统的 MVC 开发一个关键区别是返回给客户端的内容的创建方式:**传统的 MVC 模式开发会直接返回给客户端一个视图,但是 RESTful Web 服务一般会将返回的数据以 JSON 的形式返回,这也就是现在所推崇的前后端分离开发。**
46

57
为了节省时间,本篇内容的代码是在 **[Spring Boot 版 Hello World & Spring Boot 项目结构分析](https://snailclimb.gitee.io/springboot-guide/#/./start/springboot-hello-world)** 基础上进行开发的。
68

9+
### 内容概览
10+
711
通过下面的内容你将学习到下面这些东西:
812

913
1. Lombok 优化代码利器
10-
2. `@RestController`
14+
2. `@RestController`
1115
3. `@RequestParam`以及`@Pathvairable`
1216
4. `@RequestMapping`` @GetMapping`......
17+
5. `Responsity`
1318

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)
1522

1623
```xml
1724
<dependency>
@@ -25,6 +32,8 @@
2532

2633
![ IDEA 中下载支持 lombok 的插件](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/lombok-idea.png)
2734

35+
### RESTful Web 服务开发
36+
2837
假如我们有一个书架,上面放了很多书。为此,我们需要新建一个 `Book` 实体类。
2938

3039
`com.example.helloworld.entity`
@@ -87,6 +96,27 @@ public class BookController {
8796
2. `@RequestMapping` :上面的示例中没有指定 GET 与 PUT、POST 等,因为@RequestMapping默认映射所有HTTP Action,你可以使用`@RequestMapping(method=ActionType)`来缩小这个映射。
8897
3. ` @PostMapping`实际上就等价于 `@RequestMapping(method = RequestMethod.POST)`,同样的 ` @DeleteMapping` ,`@GetMapping`也都一样,常用的 HTTP Action 都有一个这种形式的注解所对应。
8998
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+
![使用 post 请求给书架增加书籍](https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-7/post-add-book.png)
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)
90119

91120

92121

122+
代码地址:https://github.com/Snailclimb/springboot-guide/tree/master/start/hello-world

0 commit comments

Comments
 (0)