开发Java REST接口的基础准备
在开始编写Java REST接口前,需明确几个核心要素:接口的功能定位、请求/响应数据格式、以及开发工具的选择,REST接口遵循HTTP协议,通过GET、POST、PUT、DELETE等方法分别对应数据的查询、创建、更新和删除操作,Java生态中,Spring Boot框架因简化配置、内置Tomcat服务器等优势,成为开发REST接口的主流选择,还需引入相关依赖,如spring-boot-starter-web,它提供了构建Web应用所需的全部组件,包括JSON序列化、HTTP请求处理等。

使用Spring Boot创建REST接口
定义控制器与请求映射
控制器(Controller)是REST接口的核心,负责接收HTTP请求并返回响应,通过@RestController注解可将类标记为控制器,默认方法返回的数据会被序列化为JSON格式,定义一个用户管理接口:
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable Long id) {
User user = userService.findById(id);
return ResponseEntity.ok(user);
}
@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
User newUser = userService.save(user);
return ResponseEntity.status(HttpStatus.CREATED).body(newUser);
}
}
@RequestMapping:定义接口的基础路径,如/api/users。@GetMapping、@PostMapping:分别对应HTTP GET和POST请求,可组合使用@RequestMapping(method = RequestMethod.GET)实现。@PathVariable:获取路径中的参数,如/api/users/1中的1。@RequestBody:将请求体JSON数据转换为Java对象。ResponseEntity:自定义响应状态码和body,如HttpStatus.CREATED表示201状态码(资源创建成功)。
处理请求参数与响应格式
REST接口需灵活处理不同类型的参数,除路径参数外,还可通过@RequestParam获取查询参数,例如/api/users?page=1&size=10,对应方法为:
@GetMapping
public ResponseEntity<List<User>> getUsers(
@RequestParam(defaultValue = "1") int page,
@RequestParam(defaultValue = "10") int size) {
List<User> users = userService.findPage(page, size);
return ResponseEntity.ok(users);
}
响应数据通常采用统一格式,如封装成Result对象,包含状态码、消息和数据:

public class Result<T> {
private int code;
private String message;
private T data;
// 省略getter/setter
}
@GetMapping("/{id}")
public Result<User> getUserById(@PathVariable Long id) {
User user = userService.findById(id);
return new Result<>(200, "success", user);
}
接口测试与优化
接口测试
接口开发完成后需进行测试,常用工具包括Postman、Swagger或JUnit,Spring Boot集成Swagger2(依赖springfox-swagger2和springfox-swagger-ui)后,访问/swagger-ui.html即可生成API文档并在线测试,在启动类上添加注解@EnableSwagger2,控制器方法可通过@ApiOperation描述接口功能:
@ApiOperation("根据ID查询用户")
@GetMapping("/{id}")
public Result<User> getUserById(@PathVariable Long id) {
// ...
}
异常处理与参数校验
接口需处理异常情况,如参数错误、资源不存在等,通过@ControllerAdvice和@ExceptionHandler全局捕获异常:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<Result<String>> handleValidationException(
MethodArgumentNotValidException ex) {
String message = ex.getBindingResult().getFieldError().getDefaultMessage();
return ResponseEntity.badRequest().body(new Result<>(400, message, null));
}
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<Result<String>> handleResourceNotFound(
ResourceNotFoundException ex) {
return ResponseEntity.status(HttpStatus.NOT_FOUND)
.body(new Result<>(404, ex.getMessage(), null));
}
}
参数校验则使用javax.validation注解,如@NotNull、@Email等,配合@Valid触发校验:

@PostMapping
public ResponseEntity<User> createUser(@Valid @RequestBody User user) {
// ...
}
Java REST接口开发的核心在于清晰定义接口规范、合理使用Spring Boot注解,并兼顾异常处理与参数校验,通过@RestController、@RequestMapping等注解简化代码,结合Swagger提升接口可维护性,再通过全局异常处理和统一响应格式保证接口的健壮性,实际开发中,还需考虑接口的安全性(如添加认证授权)、性能优化(如缓存)等,但以上步骤已覆盖REST接口开发的基础流程。

















