書籍管理システム
このプロジェクトを使用するには、以下の手順に従ってください:
- リポジトリをクローンする:
git clone https://github.com/poulenc51/Bookshelf.git
- プロジェクトディレクトリに移動する:
cd Bookshelf - dockerを起動する :
cd db docker-compose up -d - プロジェクトをビルドする:
cd .. ./gradlew build - アプリケーションを実行する :
./gradlew run
以下は、APIの使用例です。詳細なドキュメントは、各APIエンドポイントのリンクをクリックしてください。
書籍一覧取得
- リクエスト:
GET /book/ - パラメータ: なし
- レスポンス: 200 OK, JSON形式の書籍リスト
- cURLでの実行例:
curl -X GET "http://localhost:8080/book/ -H "accept: application/json"
著者IDに紐づく書籍一覧取得
- リクエスト:
GET /book/{authorId} - パラメータ:
authorId - レスポンス: 200 OK, JSON形式の書籍リスト
- cURLでの実行例:
curl -X GET "http://localhost:8080/book/2 -H "accept: application/json"
キーワード(タイトル)に紐づく書籍一覧取得
- リクエスト:
GET /book/keyword={keyword} - パラメータ:
keyword - レスポンス: 200 OK, JSON形式の書籍リスト
- cURLでの実行例:
curl -X GET "http://localhost:8080/book/keyword=猫 -H "accept: application/json"
書籍追加
- リクエスト:
POST /book/add - パラメータ:
{ "title": "海辺のカフカ", "authorId": 1, "publicationDate": "2002-09-12" } - レスポンス:書籍が追加されたことを示す文字列
- cURLでの実行例:
curl -X POST "http://localhost:8080/book/add" -H "Content-Type: application/json" -d '{ "title": "海辺のカフカ", "authorId": 1, "publicationDate": "2002-09-12" }
書籍更新
- リクエスト:
POST /book/update - パラメータ:
{ "bookId": 5, "title": "こころ", "authorId": 2, "publicationDate": "1914-08-11" } - レスポンス:書籍が更新されたことを示す文字列
- cURLでの実行例:
curl -X POST "http://localhost:8080/book/update" -H "Content-Type: application/json" -d '{ "bookId": 5, "title": "こころ", "authorId": 2, "publicationDate": "1914-08-11" }
書籍削除
- リクエスト:
POST /book/delete - パラメータ:
{ "bookId": 5 } - レスポンス:書籍が更新されたことを示す文字列
- cURLでの実行例:
curl -X POST "http://localhost:8080/book/delete" -H "Content-Type: application/json" -d '{ "bookId": 5 }
著者一覧取得
- リクエスト:
GET /author/ - パラメータ: なし
- レスポンス: 200 OK, JSON形式の書籍リスト
- cURLでの実行例:
curl -X GET "http://localhost:8080/author/ -H "accept: application/json"
キーワード(名前)に紐づく著者一覧取得
- リクエスト:
GET /author/keyword={keyword} - パラメータ:
keyword - レスポンス: 200 OK, JSON形式の書籍リスト
- cURLでの実行例:
curl -X GET "http://localhost:8080/author/keyword=村上 -H "accept: application/json"
著者追加
- リクエスト:
POST /author/add - パラメータ:
{ "name": "太宰 治", "description": "" } - レスポンス:著者が追加されたことを示す文字列
- cURLでの実行例:
curl -X POST "http://localhost:8080/author/add" -H "Content-Type: application/json" -d '{ "name": "太宰 治", "description": "" }
著者更新
- リクエスト:
POST /author/update - パラメータ:
{ "authorId": 5, "name": "クリストファー・パオリーニ", "description": "" } - レスポンス:書籍が更新されたことを示す文字列
- cURLでの実行例:
curl -X POST "http://localhost:8080/author/update" -H "Content-Type: application/json" -d '{ "authorId": 5, "name": "クリストファー・パオリーニ", "description": "" }
著者削除
- リクエスト:
POST /author/delete - パラメータ:
{ "authorId": 5 } - レスポンス:書籍が更新されたことを示す文字列
- cURLでの実行例:
curl -X POST "http://localhost:8080/book/delete" -H "Content-Type: application/json" -d '{ "authorId": 5 }
プロジェクトで使用している主な技術やライブラリについて記載します。
- Kotlin (corretto-21)
- Spring Boot (3.2.3)
- jOOQ (3.17.22)
- Postgres (14.0-alpine)
プロジェクトに関する質問やフィードバックがある場合は、GitHub Issuesを通じてお問い合わせください。