CatQuest データ API リファレンス
CatQuest 画面は giip イシュー一覧 API(giipIssues) を読み取り、各イシューを猫カードとして描画します。本ドキュメントは、そのデータ元を API で直接取得 する方法と、画面の状態→猫マッピングを説明します。
- ホスト:
https://giipfaw.azurewebsites.net - 認証:
x-api-keyヘッダー(またはAuthorization: Bearer <key>)にログインユーザーの AK、プロジェクトSK、 またはユーザー固定キーのいずれかを渡します。3種類の詳しい定義・発行元・権限範囲は イシュー・タスクAPI → 認証(このAPIと同じgiipIssuesエンドポイントを使うため認証仕様も共通です)を参照してください。取得範囲はキーのcsn(プロジェクト) に制限されます。JSONボディやクエリ文字列での鍵渡しは対応していません(実測確認、2026-08-20) — 必ず ヘッダーで渡してください。 - 結果コード(RstVal) の規約は API 結果コード を参照してください。
イシュー一覧取得 — giipIssues GET
CatQuest がページ読み込み時に呼び出す読み取り API です。
curl "https://giipfaw.azurewebsites.net/api/giipIssues?csn=47" \
-H "x-api-key: ${GIIP_API_KEY}"
リクエストパラメータ
| 名前 | 位置 | 必須 | 説明 |
|---|---|---|---|
csn | query | ✅ | 取得するプロジェクト番号。CatQuest は現在選択中のプロジェクトの csn を自動で入れます。 |
レスポンス例
{
"issues": [
{
"isn": 735,
"title": "admin/catquest ユーザーガイド作成",
"status": "READY",
"regdate": "2026-07-24T08:54:00Z",
"summary": "ガイドボタンの有効化",
"last_comment_date": "2026-07-24T09:00:00Z",
"blocked_by_isn": null,
"blocked_by_title": null
}
]
}
レスポンスフィールド(CatQuest が使用するもの)
| フィールド | 型 | 画面での用途 |
|---|---|---|
isn | number | イシュー番号(#isn バッジ)。どの猫を割り当てるかも isn で決まります。 |
title | string | カード上部の吹き出しタイトル |
status | string | 猫の動き(アニメーション)を決定 — 下記マッピング参照 |
regdate | string | 登録日時(🐣) |
summary | string | カード下部の要約(存在する場合のみ) |
last_comment_date | string | null | 最終コメント日時(💬)、無ければ「コメント無し」 |
blocked_by_isn | number | null | 待機(blocked-by)バッジ — このイシューをブロックしている占有イシューの番号 |
blocked_by_title | string | null | 待機バッジのツールチップ(占有イシューのタイトル) |
状態 → 猫の動き マッピング
CatQuest フロントが status 値を次のルールでアニメーションにマッピングします(サーバー値ではなく画面表現ルール)。
| status | 猫の状態 | 画像ファイルパターン |
|---|---|---|
| PENDING | playing | /images/catquest/<cat>_playing.png |
| READY | ready | /images/catquest/<cat>_ready.png |
| IN_PROGRESS | hunting | /images/catquest/<cat>_hunting.png |
| REVIEW | delivering | /images/catquest/<cat>_delivering.png |
| DONE | playing | /images/catquest/<cat>_playing.png |
<cat>はisn % 8で 8 種(mochi・sherlock・nimbus・pixel・cocoa・midnight・luna・leo)のいずれかが固定割り当てされます。
関連 API
- イシュー登録・修正・状態変更: プログラムでイシューを生成/遷移するには イシュー・タスク API を参照してください。
- コメント取得/追加: イシュー詳細画面は
giipIssueCommentsAPI を使用します。
トラブルシューティング
| 症状 | 原因 | 解決 |
|---|---|---|
401 {"error":"Auth required"} | x-api-key ヘッダー自体が無い、またはJSONボディ/クエリ文字列など未対応の方法で鍵を渡した | x-api-key: <key> ヘッダー(または Authorization: Bearer <key>)で渡す。実測確認: ボディtoken・クエリ?token=は読み取られません |
401 {"error":"Invalid session"} | 鍵の誤字・失効・無効化(SK再発行/ローテーション、AKセッション期限切れなど) | 有効な鍵で再試行するか再ログインします。鍵の条件詳細は イシュー・タスクAPI 参照 |
空の issues: [](csnにイシューが無い場合) | その csn にイシューが無い | csn 値を確認するかイシューを登録します |
空の issues: [](鍵に権限が無い場合) | 鍵はそのcsnへのアクセス権を持たない(これは401にならず空配列になります — 実測確認、2026-08-20) | そのcsn用の鍵を使うか、管理者に権限付与を依頼します |
csn 無しで呼び出し | 必須パラメータの欠落 | 必ず ?csn=<番号> を含めます |
バージョン: 1.1
最終更新: 2026-08-20(テスト対象API: giipfaw本番)
ソースファイル: giipv3/public/help/api-catquest.ja.md
v1.1 変更履歴 (2026-08-20, giip #1280): 認証セクションを イシュー・タスクAPI の拡充版認証定義にリンクして重複を解消。curl例を環境変数化。401の原因(鍵未達/鍵無効)とcsn権限不一致時の 挙動(401ではなく空配列)をトラブルシューティング表に追加(giip-issue-apiでの実測結果を反映)。