🧰 一、项目目标
我们要开发一个「用户信息管理接口」服务,支持以下功能:
- 获取用户列表(GET
/users
) - 创建新用户(POST
/users
) - 获取单个用户详情(GET
/users/{id}
)
🚀 二、创建 Spring Boot 项目
使用 Spring Initializr 创建项目,选择依赖项如下:
- Spring Web
- Spring Boot DevTools
- Lombok
- Spring Validation(可选)
👉 推荐用 IDEA 快速生成。
📁 三、定义实体类 User
kotlin
java
复制编辑
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Long id;
private String name;
private Integer age;
}
📦 四、构建 Controller 层
kotlin
java
复制编辑
@RestController
@RequestMapping("/users")
public class UserController {
private final Map<Long, User> userMap = new ConcurrentHashMap<>();
@GetMapping
public List<User> getAllUsers() {
return new ArrayList<>(userMap.values());
}
@GetMapping("/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
User user = userMap.get(id);
if (user == null) {
return ResponseEntity.notFound().build();
}
return ResponseEntity.ok(user);
}
@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
user.setId(System.currentTimeMillis()); // 简单生成 ID
userMap.put(user.getId(), user);
return ResponseEntity.ok(user);
}
}
🧪 五、使用 Postman 测试接口
GET /users
→ 返回所有用户信息POST /users
+ JSON 参数 → 添加用户GET /users/{id}
→ 查询单个用户
🛡 六、加上异常处理(全局处理类)
kotlin
java
复制编辑
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handle(Exception ex) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
.body("服务器异常: " + ex.getMessage());
}
}
📚 七、接口返回统一封装(Optional)
为了提升前后端联调体验,我们可以定义统一响应结构:
kotlin
java
复制编辑
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ApiResponse<T> {
private int code;
private String message;
private T data;
}
然后在 Controller 中返回:
sql
java
复制编辑
return ResponseEntity.ok(new ApiResponse<>(0, "成功", user));
🔧 八、进阶建议
- 将数据从内存换成数据库(JPA、MyBatis)
- 加上参数校验(Spring Validation)
- 接口加上 Swagger 文档(springdoc-openapi-ui)
✅ 总结
本文从 0 到 1 实战构建了一个 Java 后端接口服务,涵盖:
- Spring Boot 项目结构
- RESTful 接口设计
- 参数处理与异常管理
- JSON 数据返回封装
适合正在学习 Java Web、Spring Boot 的开发者,欢迎点赞 + 收藏 + 关注!🚀
📌 掘金发布小贴士:
- 添加标签:
Java
Spring Boot
后端开发
RESTful API
- 推荐插图或接口示例截图
- 建议末尾附上完整 GitHub demo 地址(提高专业性)