Skip to content

Tags API

タグ管理に関するAPIエンドポイントです。

GET /tags

タグ一覧を取得します。

概要

項目内容
説明全てのタグ一覧を取得
認証不要
メソッドGET
パス/v1/tags

レスポンス

成功(200)

json
{
  "apiVersion": "1.0.0",
  "data": {
    "tags": [
      {
        "id": "tag_001",
        "name": "Go"
      },
      {
        "id": "tag_002",
        "name": "マイクロサービス"
      }
    ]
  }
}

エラー一覧

ステータスエラーコード説明
400VALIDATION_ERRORリクエストパラメータが不正
500INTERNAL_ERRORサーバー内部エラー

実装参照

  • internal/usecase/tag/list.go
  • internal/infrastructure/http/echo/handler/tag/list.go

POST /tags

新規タグを作成します。

概要

項目内容
説明新規タグを作成します
認証必要
メソッドPOST
パス/v1/tags

リクエスト

ヘッダー

http
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json

リクエストボディ

json
{
  "name": "タグ名"
}

フィールド詳細

フィールド必須説明
namestringタグ名(一意である必要がある)

レスポンス

成功(201)

json
{
  "apiVersion": "1.0.0",
  "data": {
    "tag": {
      "id": "tag_003",
      "name": "タグ名"
    }
  }
}

エラー一覧

ステータスエラーコード説明
400VALIDATION_ERRORリクエストボディの値が不正
401UNAUTHORIZED認証トークンが無効
409CONFLICT同じ名前のタグが既に存在
500INTERNAL_ERRORサーバー内部エラー

実装参照

  • internal/usecase/tag/create.go
  • internal/infrastructure/http/echo/handler/tag/create.go

GET /tags/

指定IDのタグ詳細を取得します。

概要

項目内容
説明指定IDのタグ詳細を取得します
認証不要
メソッドGET
パス/v1/tags/{tag_id}

パラメータ

パスパラメータ

パラメータ必須説明
tag_idstringタグID

レスポンス

成功(200)

json
{
  "apiVersion": "1.0.0",
  "data": {
    "tag": {
      "id": "tag_001",
      "name": "Go"
    }
  }
}

エラー一覧

ステータスエラーコード説明
400VALIDATION_ERRORtag_idの形式が不正
404NOT_FOUND指定されたタグが見つからない
500INTERNAL_ERRORサーバー内部エラー

実装参照

  • internal/usecase/tag/get.go
  • internal/infrastructure/http/echo/handler/tag/get.go

PUT /tags/

指定IDのタグを更新します。

概要

項目内容
説明指定IDのタグを更新します
認証必要
メソッドPUT
パス/v1/tags/{tag_id}

パラメータ

パスパラメータ

パラメータ必須説明
tag_idstringタグID

リクエスト

ヘッダー

http
Authorization: Bearer <JWT_TOKEN>
Content-Type: application/json

リクエストボディ

json
{
  "name": "更新されたタグ名"
}

フィールド詳細

フィールド必須説明
namestring新しいタグ名(一意である必要がある)

レスポンス

成功(200)

json
{
  "apiVersion": "1.0.0",
  "data": {
    "tag": {
      "id": "tag_001",
      "name": "更新されたタグ名"
    }
  }
}

エラー一覧

ステータスエラーコード説明
400VALIDATION_ERRORリクエストボディまたはパスパラメータが不正
401UNAUTHORIZED認証トークンが無効
404NOT_FOUND指定されたタグが見つからない
500INTERNAL_ERRORサーバー内部エラー

実装参照

  • internal/usecase/tag/update.go
  • internal/infrastructure/http/echo/handler/tag/update.go

DELETE /tags/

指定IDのタグを削除します。

概要

項目内容
説明指定IDのタグを削除します
認証必要
メソッドDELETE
パス/v1/tags/{tag_id}

パラメータ

パスパラメータ

パラメータ必須説明
tag_idstringタグID

リクエスト

ヘッダー

http
Authorization: Bearer <JWT_TOKEN>

レスポンス

成功(204)

レスポンスボディなし

エラー一覧

ステータスエラーコード説明
400VALIDATION_ERRORtag_idの形式が不正
401UNAUTHORIZED認証トークンが無効
404NOT_FOUND指定されたタグが見つからない
500INTERNAL_ERRORサーバー内部エラー

注意事項

  • タグを削除すると、そのタグを使用している記事からもタグの関連付けが削除されます
  • 削除前に関連する記事への影響を確認することを推奨します

実装参照

  • internal/usecase/tag/delete.go
  • internal/infrastructure/http/echo/handler/tag/delete.go

データモデル

Tag

go
type Tag struct {
    ID   string `json:"id"`
    Name string `json:"name"`
}

バリデーションルール

タグ名(name)

  • 必須: 空文字列は不可
  • 文字数: 1文字以上50文字以下
  • 一意性: 同じ名前のタグは作成できない
  • 文字種: 日本語、英数字、記号使用可能

使用例

技術系タグの例

json
{
  "id": "tag_001",
  "name": "Go"
}

日本語タグの例

json
{
  "id": "tag_002", 
  "name": "マイクロサービス"
}