SpringBoot 编写第一个 REST 接口(Get/Post/Put/Delete)

不管是做后台、微服务、前后端分离,第一步永远是写接口。

这一节我带你从零开始,一次性学会:

  • GET 查询

  • POST 新增

  • PUT 修改

  • DELETE 删除


一、先搞懂:REST 风格是什么?

简单记 4 个规范:

  • GET

    :查询数据(查)

  • POST

    :新增数据(增)

  • PUT

    :修改数据(改)

  • DELETE

    :删除数据(删)

不用记复杂理论,会用这 4 个注解就算学会 REST。


二、第一步:创建项目 & 必备依赖

只需要一个依赖:

go 复制代码
1<dependency>
2<groupId>org.springframework.bootgroupId>
3<artifactId>spring-boot-starter-webartifactId>
4dependency>

三、第二步:写第一个统一返回结果

前后端分离必须用统一格式:

go 复制代码
1importlombok.Data;
2
3@Data
4publicclassResult<T>{
5privateint code;
6privateString msg;
7privateT data;
8
9publicstatic<T>Result<T>success(T data){
10Result<T> r =newResult<>();
11        r.setCode(200);
12        r.setMsg("成功");
13        r.setData(data);
14return r;
15}
16
17publicstatic<T>Result<T>fail(String msg){
18Result<T> r =newResult<>();
19        r.setCode(500);
20        r.setMsg(msg);
21return r;
22}
23}

四、第三步:4 种接口实战

1. GET(查询)

go 复制代码
1@RestController
2@RequestMapping("/user")
3publicclassUserController{
4
5// 查询单个用户
6@GetMapping("/{id}")
7publicResult<String>getById(@PathVariableInteger id){
8returnResult.success("查询到用户:"+ id);
9}
10
11// 多条件查询
12@GetMapping("/list")
13publicResult<String>list(String name,Integer age){
14returnResult.success("查询列表:name="+ name +", age="+ age);
15}
16}

2. POST(新增)

go 复制代码
1// 新增用户(JSON 格式)
2@PostMapping
3publicResult<String>add(@RequestBodyUser user){
4returnResult.success("新增成功:"+ user.getUsername());
5}

3. PUT(修改)

go 复制代码
1// 修改用户
2@PutMapping
3publicResult<String>update(@RequestBodyUser user){
4returnResult.success("修改成功:"+ user.getId());
5}

4. DELETE(删除)

go 复制代码
1// 删除用户
2@DeleteMapping("/{id}")
3publicResult<String>delete(@PathVariableInteger id){
4returnResult.success("删除成功:"+ id);
5}

五、第四步:实体类 User

go 复制代码
1importlombok.Data;
2
3@Data
4publicclassUser{
5privateInteger id;
6privateString username;
7privateInteger age;
8}

六、测试接口

  • GET:http://localhost:8080/user/1

  • GET:http://localhost:8080/user/list?name=张三

  • POST:JSON 格式提交

  • PUT:JSON 格式提交

  • DELETE:http://localhost:8080/user/1


七、必须记住的 5 个注解

  1. @RestController

    :返回 JSON,不走页面

  2. @RequestMapping

    :统一前缀

  3. @GetMapping

    :查询

  4. @PostMapping

    :新增

  5. @RequestBody

    :接收 JSON


八、容易踩的坑

  1. 忘记加 @RestController → 404
  2. POST 没加 @RequestBody → 接收不到 JSON
  3. 请求方式不匹配(用 POST 访问 GET)→ 405
  4. 路径写错 → 404
  5. 返回值没统一 → 前端很难对接

九、总结

SpringBoot 写 REST 接口就 3 步:

  1. 加 @RestController

  2. 用 @GetMapping/@PostMapping/@PutMapping/@DeleteMapping

  3. 接收参数,返回统一结果

学会这一节,你已经具备后台开发基础能力了!


相关推荐
谢亮_vipxieliang1 小时前
Spring Cloud 服务治理入门:注册发现、配置中心、网关限流、熔断降级与分布式一致性方案
分布式·spring·spring cloud
Wang's Blog1 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
卷无止境3 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
\光辉岁月/3 小时前
5.java-数组
java·开发语言
谢亮_vipxieliang3 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot
狼爷3 小时前
从零用 Java 构建 AI Agent 框架:JavaManus 设计与实现深度解析
后端·langchain·aigc
郑州光合科技余经理3 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071573 小时前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
code2cat3 小时前
Java进阶篇之AtomicReference:一次替换引用,读到一份完整状态
java·并发编程·不可变对象·atomicreference
专业程序开发源4 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计