一、RESTful API 简介
REST(Representational State Transfer)是一种基于 Web 的架构风格,RESTful API 是使用 HTTP 协议并遵循 REST 原则设计的 API 接口。其核心思想是:使用标准 HTTP 方法(GET、POST、PUT、DELETE)对资源进行操作。
RESTful API 通常用于构建前后端分离、微服务架构等系统,具备易理解、易扩展、易维护等优点。
二、常用技术选型
技术栈 | 描述 |
---|---|
Java/Spring Boot | 企业级开发首选 |
Python/Flask | 轻量快速原型开发 |
Node.js/Express | 前端一体化开发优选 |
PHP/Laravel | Web 项目常用后端框架 |
以下以 Spring Boot + RESTful API 为示例讲解。
三、Spring Boot 创建 RESTful API 项目
3.1 添加 Maven 依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
3.2 创建 Controller 类
@RestController
@RequestMapping("/api/users")
public class UserController {@GetMapping("/{id}")public User getUser(@PathVariable Long id) {return new User(id, "小奇");}@PostMappingpublic String createUser(@RequestBody User user) {return "创建成功:" + user.getName();}@PutMapping("/{id}")public String updateUser(@PathVariable Long id, @RequestBody User user) {return "更新用户:" + id;}@DeleteMapping("/{id}")public String deleteUser(@PathVariable Long id) {return "删除用户:" + id;}
}
3.3 定义实体类
public class User {private Long id;private String name;// 构造器 / Getter / Setter 略
}
四、使用 Postman 测试接口
- 安装 Postman:https://www.postman.com/downloads/
- 发送 GET/POST/PUT/DELETE 请求到对应地址;
- 设置 Header:
Content-Type: application/json
; - 设置 Body 参数(JSON 格式):
{"id": 1,"name": "小奇"
}
五、常见 URL 设计规范
操作 | 方法 | 路径 |
---|---|---|
查询用户 | GET | /api/users/{id} |
添加用户 | POST | /api/users |
更新用户 | PUT | /api/users/{id} |
删除用户 | DELETE | /api/users/{id} |
六、错误处理建议
使用 @ControllerAdvice
统一异常处理,返回标准 JSON 响应结构:
@RestControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler(Exception.class)public ResponseEntity<String> handle(Exception e) {return ResponseEntity.status(500).body("服务器错误:" + e.getMessage());}
}
七、RESTful API 最佳实践
- 遵循资源命名规范(使用名词而非动词);
- 使用 HTTP 状态码表示操作结果;
- 提供统一错误响应结构;
- 支持分页、排序、筛选;
- 提供 Swagger 接口文档(推荐集成 SpringDoc 或 Swagger);
八、推荐资源
- RESTful API 设计指南
- Postman 教程
- Spring Boot 官方文档
- 《RESTful Web APIs》书籍推荐
本文由“小奇Java面试”原创发布,转载请注明出处。
可以搜索【小奇JAVA面试】第一时间阅读,回复【资料】获取福利,回复【项目】获取项目源码,回复【简历模板】获取简历模板,回复【学习路线图】获取学习路线图。