一、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面試】第一時間閱讀,回復【資料】獲取福利,回復【項目】獲取項目源碼,回復【簡歷模板】獲取簡歷模板,回復【學習路線圖】獲取學習路線圖。