Skip to content

feat: Add favorite heritages list & favorite-ids APIs / お気に入り世界遺産一覧・IDs取得APIの追加 #555

Description

@zigzagdev

Motivation / 目的

Provide APIs to list a user's favorited World Heritage sites (for a card list) and to fetch just the favorited IDs (for lightweight favorite-state checks), reusing the Favorite domain/infra already implemented in #551 and #552.

ログインユーザーのお気に入り世界遺産をカード一覧として取得するAPIと、お気に入り済みIDだけを軽量に取得するAPIを提供する。ドメイン/インフラは #551 #552 で実装済みのものを再利用する。

Scope / スコープ

  • GET /api/v1/users/me/favorites — お気に入り登録済みの世界遺産一覧
  • GET /api/v1/users/me/favorites/ids — お気に入り済みの世界遺産ID一覧

API Request / Response

GET /api/v1/users/me/favorites

Request:

  • user_id: 認証済みユーザー(Authorization: Bearer <token> から解決。クライアントから明示的に渡すパラメータではない)
  • Query: current_page(default: 1), per_page(default: 30)— 既存の GET /v1/heritages と同じページネーション規約に合わせる

Response (200)、既存の PaginationDto::toArray() と同じ形(items + pagination)を踏襲する:

{
  "status": "success",
  "data": {
    "items": [ "..." ],
    "pagination": {
      "current_page": 1,
      "per_page": 30,
      "total": 42,
      "last_page": 2,
      "from": "1",
      "to": "30",
      "path": "...",
      "first_page_url": "...",
      "last_page_url": "...",
      "next_page_url": "...",
      "prev_page_url": "...",
      "links": []
    }
  }
}

GET /api/v1/users/me/favorites/ids

Request:

  • user_id: 認証済みユーザー(同上)
  • ページネーションなし(お気に入りIDを全件返す軽量エンドポイントのため)

Response (200):

{
  "status": "success",
  "data": {
    "world_heritage_ids": [12, 45, 108]
  }
}

Related / 関連

Sub-issues / サブIssue

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions