API リファレンス
Blog Service REST API の詳細仕様書です。
概要
Blog Service は REST API を提供し、記事とタグの管理機能を提供します。
Base URL
環境 | URL |
---|---|
ローカル開発 | http://localhost:8080/blog-service/v1 |
開発環境 | https://api.blog.dev.goodyfolio.com/blog-service/v1 |
本番環境 | https://api.blog.prod.goodyfolio.com/blog-service/v1 |
API バージョン
現在のAPIバージョン: v1
全てのレスポンスには以下の共通フィールドが含まれます:
json
{
"apiVersion": "1.0.0"
}
認証
一部のエンドポイントでは JWT Bearer 認証が必要です。
認証ヘッダー
http
Authorization: Bearer <JWT_TOKEN>
認証が必要なエンドポイント
- 記事の作成・更新・削除
- タグの作成・更新・削除
リクエスト・レスポンス形式
Content-Type
Content-Type: application/json
成功レスポンス形式
json
{
"apiVersion": "1.0.0",
"data": {
// レスポンスデータ
}
}
エラーレスポンス形式
json
{
"apiVersion": "1.0.0",
"error": {
"code": "ERROR_CODE",
"message": "エラーメッセージ"
}
}
ステータスコード
コード | 説明 |
---|---|
200 | 成功 |
201 | 作成成功 |
204 | 削除成功(レスポンスボディなし) |
400 | リクエストエラー |
401 | 認証エラー |
404 | リソースが見つからない |
409 | 競合エラー |
500 | サーバー内部エラー |
共通エラーコード
コード | 説明 | HTTPステータス |
---|---|---|
VALIDATION_ERROR | バリデーションエラー | 400 |
UNAUTHORIZED | 認証失敗 | 401 |
NOT_FOUND | リソースが見つからない | 404 |
CONFLICT | 重複などの競合 | 409 |
INTERNAL_ERROR | サーバー内部エラー | 500 |
ページネーション
一覧系APIではページネーションをサポートしています。
パラメータ
パラメータ | 型 | 必須 | デフォルト | 説明 |
---|---|---|---|---|
page | integer | ✅ | - | ページ番号(1から開始) |
page_size | integer | - | 10 | 1ページあたりの件数(最大100) |
レスポンス例
json
{
"apiVersion": "1.0.0",
"data": {
"articles": [
// 記事データ配列
]
}
}
フィルタリング
記事一覧では以下のフィルタリングが可能です:
パラメータ | 型 | 説明 |
---|---|---|
tag_id | string | 指定タグIDでフィルタ |
category | tech | life | カテゴリでフィルタ |
API エンドポイント一覧
システム
メソッド | パス | 説明 | 認証 |
---|---|---|---|
GET | /health | ヘルスチェック | 不要 |
記事管理
メソッド | パス | 説明 | 認証 |
---|---|---|---|
GET | /articles | 記事一覧取得 | 不要 |
POST | /articles | 記事作成 | 必要 |
GET | /articles/{article_id} | 記事詳細取得 | 不要 |
PUT | /articles/{article_id} | 記事更新 | 必要 |
DELETE | /articles/{article_id} | 記事削除 | 必要 |
タグ管理
メソッド | パス | 説明 | 認証 |
---|---|---|---|
GET | /tags | タグ一覧取得 | 不要 |
POST | /tags | タグ作成 | 必要 |
GET | /tags/{tag_id} | タグ詳細取得 | 不要 |
PUT | /tags/{tag_id} | タグ更新 | 必要 |
DELETE | /tags/{tag_id} | タグ削除 | 必要 |
詳細ドキュメント
OpenAPI仕様
完全なOpenAPI仕様は以下で確認できます: