Spring Boot构建RESTful API

简介: Spring Boot构建RESTful API

在spring boot的controller层中,构建一套符合restful风格的api接口。

接口的设计如下:

请求类型 URL 功能说明
Get /user 查询所有用户列表
Post /users 新增User
Get /users/id 通过主键id查询user信息
Put /users/id 通过主键id更新User信息
Delete /users/id 通过主键id来删除User

定义user相关实体

UserDO

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class UserDO {
   /**
    * 主键id
    * */
   private Long id;
   /**
    * 用户名
    * */
   private String name;
   /**
    * 年龄
    * */
   private Integer age;
}
AI 代码解读

UserRequest

@Data
public class UserRequest {
   /**
    * 主键id
    * */
   private Long id;
   /**
    * 用户名
    * */
   private String name;
   /**
    * 年龄
    * */
   private Integer age;
}
AI 代码解读

UserResponse

@Data
public class UserResponse {
   /**
    * 主键id
    * */
   private Long id;
   /**
    * 用户名
    * */
   private String name;
   /**
    * 年龄
    * */
   private Integer age;
}
AI 代码解读

实现对user的CRUD操作

UserController

@RestController
@RequestMapping("/user")
public class UserController {

   /**
    * 创建线程安全的Map,用于模拟user信息的存储
    */
   static Map users = Collections.synchronizedMap(new HashMap());

   /**
    * 处理"/user/"的get请求
    * 查询所有用户列表
    */
   @GetMapping("/")
   public Result> getUserList() {
       List list = new ArrayList<>(UserController.users.values());
       List result = Converter.convert(list, UserResponse.class);
       return Result.success(result);
   }

   /**
    * 处理"/users/"的POST请求
    * 新增User
    * RequestBody注解用来绑定通过http请求中application/json类型上传的数据
    */
   @PostMapping("/")
   public Result postUser(@RequestBody UserRequest userRequest) {
       UserDO user = Converter.convert(userRequest, UserDO.class);
       users.put(userRequest.getId(), user);
       return Result.success(true);
   }

   /**
    * 处理"/users/{id}"的GET请求
    * 通过主键id查询user信息
    */
   @GetMapping("/{id}")
   public Result getUserById(@PathVariable Long id) {
       UserDO user = users.get(id);
       UserResponse result = Converter.convert(user, UserResponse.class);
       return Result.success(result);
   }

   /**
    * 处理"/users/{id}"的PUT请求
    * 通过主键id更新User信息
    */
   @PutMapping("/{id}")
   public Result putUser(@PathVariable Long id, @RequestBody UserRequest userRequest) {
       UserDO u = users.get(id);
       u.setName(userRequest.getName());
       u.setAge(userRequest.getAge());
       users.put(id, u);
       return Result.success(true);
   }

   /**
    * 处理"/users/{id}"的DELETE请求
    * 通过主键id来删除User
    */
   @DeleteMapping("/{id}")
   public Result deleteUser(@PathVariable Long id) {
       users.remove(id);
       return Result.success(true);
   }
}
AI 代码解读

在APIPOST中测试

dccc9ff1d1fe40bc8eb8cdeede597db6.png

目录
打赏
0
1
0
0
3
分享
相关文章
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
解锁 DeepSeek API 接口:构建智能应用的技术密钥
在数字化时代,智能应用蓬勃发展,DeepSeek API 作为关键技术之一,提供了强大的自然语言处理能力。本文详细介绍 DeepSeek API,并通过 Python 请求示例帮助开发者快速上手。DeepSeek API 支持文本生成、问答系统、情感分析和文本分类等功能,具备高度灵活性和可扩展性,适用于多种场景。示例展示了如何使用 Python 调用 API 生成关于“人工智能在医疗领域的应用”的短文。供稿者:Taobaoapi2014。
【潜意识Java】使用SpringBoot构建高效的RESTfulAPI
本文介绍了使用Spring Boot构建RESTful API的完整流程,涵盖从项目创建到API测试的各个步骤。
65 1
自学记录HarmonyOS Next DRM API 13:构建安全的数字内容保护系统
在完成HarmonyOS Camera API开发后,我深入研究了数字版权管理(DRM)技术。最新DRM API 13提供了强大的工具,用于保护数字内容的安全传输和使用。通过学习该API的核心功能,如获取许可证、解密内容和管理权限,我实现了一个简单的数字视频保护系统。该系统包括初始化DRM模块、获取许可证、解密视频并播放。此外,我还配置了开发环境并实现了界面布局。未来,随着数字版权保护需求的增加,DRM技术将更加重要。如果你对这一领域感兴趣,欢迎一起探索和进步。
114 18
Spring Boot 编写 API 的 10条最佳实践
本文总结了 10 个编写 Spring Boot API 的最佳实践,包括 RESTful API 设计原则、注解使用、依赖注入、异常处理、数据传输对象(DTO)建模、安全措施、版本控制、文档生成、测试策略以及监控和日志记录。每个实践都配有详细的编码示例和解释,帮助开发者像专业人士一样构建高质量的 API。
134 9
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将引导您步入Node.js的奇妙世界,通过实践操作,掌握如何使用这一强大的JavaScript运行时环境构建高效、可扩展的RESTful API。我们将一同探索Express框架的使用,学习如何设计API端点,处理数据请求,并实现身份验证机制,最终部署我们的成果到云服务器上。无论您是初学者还是有一定基础的开发者,这篇文章都将为您打开一扇通往后端开发深层知识的大门。
87 12
基于SpringBoot+Vue实现的留守儿童爱心网站设计与实现(计算机毕设项目实战+源码+文档)
博主是一位全网粉丝超过100万的CSDN特邀作者、博客专家,专注于Java、Python、PHP等技术领域。提供SpringBoot、Vue、HTML、Uniapp、PHP、Python、NodeJS、爬虫、数据可视化等技术服务,涵盖免费选题、功能设计、开题报告、论文辅导、答辩PPT等。系统采用SpringBoot后端框架和Vue前端框架,确保高效开发与良好用户体验。所有代码由博主亲自开发,并提供全程录音录屏讲解服务,保障学习效果。欢迎点赞、收藏、关注、评论,获取更多精品案例源码。
基于SpringBoot+Vue实现的家政服务管理平台设计与实现(计算机毕设项目实战+源码+文档)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
基于SpringBoot+Vue实现的家乡特色推荐系统设计与实现(源码+文档+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!

热门文章

最新文章