当前位置: 首页 > news >正文

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

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

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

  • GET 查询

  • POST 新增

  • PUT 修改

  • DELETE 删除


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

简单记 4 个规范:

  • GET

    :查询数据(查)

  • POST

    :新增数据(增)

  • PUT

    :修改数据(改)

  • DELETE

    :删除数据(删)

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


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

只需要一个依赖:

1<dependency> 2<groupId>org.springframework.bootgroupId> 3<artifactId>spring-boot-starter-webartifactId> 4dependency>

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

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

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(查询)

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(新增)

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

3. PUT(修改)

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

4. DELETE(删除)

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

五、第四步:实体类 User

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. 接收参数,返回统一结果

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


http://www.jsqmd.com/news/536524/

相关文章:

  • 前后端分离校运会管理系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 2026年浙江旧木方优质供应商推荐榜:回收二手木方/回收二手模板/回收旧木方/回收旧模板木方/地坪保护橡胶垫租赁/选择指南 - 优质品牌商家
  • 【仅限首批订阅者】Python AOT编译性能天花板在哪?我们用SPEC CPU 2017 + 自研Python基准套件跑满72小时,结果颠覆认知…
  • OpenClaw安全指南:GLM-4.7-Flash环境下的权限控制与风险规避
  • OpenClaw+百川2-13B自动化内容处理:从网页抓取到Markdown生成
  • OpenClaw隐私保护模式:Qwen3-32B-Chat镜像敏感信息过滤实战
  • OpenClaw+百川2-13B:5个提升个人效率的自动化脚本实例
  • BGP路由优化:配置、故障排除与网络性能提升
  • 计算机毕业设计 java 装饰公司网站设计与实现 SpringBoot 装饰公司数字化展示与服务平台 JavaWeb 装饰设计与订单管理系统
  • 为什么“写入数据库”在生产环境中远比想象中复杂
  • 基于Python的私房菜定制上门服务系统毕业设计
  • 运维转行到网安,我后悔了?后悔没早转
  • 暗黑破坏神:技术焕新与经典重构——DevilutionX的跨平台复兴之路
  • SpringBoot 应用优雅停机:正确关闭服务的 3 种方式
  • Java学习笔记_Day14
  • ChatGPT模型排名实战指南:如何选择最适合业务场景的AI模型
  • 开源项目依赖管理:从架构设计到实战落地
  • DNS负载均衡:架构、优化与故障排查指南
  • 百川2-13B模型微调指南:提升OpenClaw自动化任务准确率
  • 木马与恶意软件深度实战:查杀原理 + 免杀对抗全攻略(2026 珍藏版)
  • 2026制造业机房报废设备回收厂家排行榜:机房存储设备回收/机房旧设备回收/机房服务器回收/机房机柜回收/机房淘汰设备回收/选择指南 - 优质品牌商家
  • 嵌入式NMEA-0183零内存分配解析器设计与实现
  • 如何快速构建轻量Windows 11系统:tiny11builder完整指南
  • Qwen3-4B模型微调指南:提升OpenClaw任务准确率
  • 自动机:创意编码动画引擎的终极实现方案
  • 中文语义相似度计算新范式:技术演进与实践路径
  • ChatGPT工作原理简述:从Transformer到AI辅助开发的实践指南
  • 嵌入式Linux多线程资源占用排查方法
  • 深入解析cosyvoice接口:从技术原理到高效集成实践
  • RTX4090D显存管理:OpenClaw长时间运行Qwen3-32B的稳定性技巧