線上書店後端 REST API,本專案是《Spring Boot 後端開發實戰教材》的隨附程式碼, 所有檔案都加上了詳細的中文註解,建議搭配教材 PDF 閱讀。

技術棧

  • Spring Boot 3.5.4(Web、Data JPA、Security、Validation)
  • MySQL 8 + Hibernate(ORM)
  • JWT(JJWT 0.12.6)認證與角色授權
  • Docker 多階段建置 + Docker Compose

啟動方式

本機開發

# 先啟動 MySQL(Docker 範例):
docker run --name bookstore-mysql \
  -e MYSQL_ROOT_PASSWORD=root1234 \
  -e MYSQL_DATABASE=bookstore_db \
  -p 3306:3306 -d mysql:8.4

# 啟動應用程式
mvn spring-boot:run

Docker Compose 一鍵啟動

docker compose up -d --build   # 啟動 MySQL + API
docker compose logs -f app     # 觀察啟動日誌
docker compose down            # 停止(資料保留)

API 總覽

方法 路徑 說明 權限
POST /api/auth/register 註冊 公開
POST /api/auth/login 登入取得 JWT 公開
GET /api/books 分頁查詢 公開
GET /api/books/{id} 單筆查詢 公開
GET /api/books/search?keyword= 關鍵字搜尋 公開
POST /api/books 新增書籍 USER / ADMIN
PUT /api/books/{id} 完整更新 USER / ADMIN
PATCH /api/books/{id} 部分更新 USER / ADMIN
DELETE /api/books/{id} 刪除書籍 僅 ADMIN

測試帳號

帳號 密碼 角色
admin Admin@123 ROLE_ADMIN
user User@123 ROLE_USER

需要認證的請求請加上 Header:Authorization: Bearer <token>。

設定

src/main/resources/application.yml 支援以環境變數覆寫: DB_HOST、DB_PORT、DB_NAME、DB_USERNAME、DB_PASSWORD、 JWT_SECRET、JWT_EXPIRATION_MS。