コンテンツにスキップ

過去質問データ API

質問ライブラリ(過去質問データ)を扱うエンドポイント。

登録は自動で行われるため、登録用のエンドポイントはありません。

登録経路 対応する API
案件の出力 案件 API の「JSON 出力」
CS からの取り込み 取り込み API の「bundle インポート」

流用は 設問 API の「設問流用」 と セクション API の「外部由来から 1 セクション一括挿入」 で行います。

認証・レスポンス形式・エラーの扱いは API 定義 を参照。

メソッド

HTTP メソッド

メソッド URI 概要
GET /api/question-library 過去質問データ一覧取得
DELETE /api/question-library/{itemId} 過去質問データ削除

リソース定義

過去質問データスキーマ

フィールド データ型 備考
id string UUID
sourceSurveyId string | null 内部由来の場合の元案件 UUID
sourceSurveyTitle string | null 元案件のタイトル
sourceQuestionId string | null 内部由来の場合の元設問 UUID
sourceSectionId string 元セクションの UUID
sourceExternalSurveyId string | null 外部由来の場合の外部調査票 UUID
sourceExternalSurveyName string | null 外部調査票の名前
sourceExternalQuestionId string | null 外部由来の場合の外部設問 UUID
category string カテゴリ。検索の絞り込みに使う
sectionTitle string 元のセクションタイトル
questionType enum single / multi / free_text / matrix / intro / pulldown
normalizedPayload object 正規化された設問内容
createdAt string 登録日時(ISO 8601)
createdBy string | null 登録者のユーザー ID

normalizedPayload

フィールド データ型 備考
promptText string 設問文
options object[] 選択肢(label / isExclusive / allowOtherInput / isNotApplicable)
subItems object[] サブ項目(マトリクスの列など)。label のみ
subQuestions object[] サブ設問(label + options)

分岐は含まれない

正規化ペイロードには分岐ルール・表示ロジックが含まれません。流用後にあらためて設定する必要があります。

認証要件

x-user-email / x-user-name ヘッダによるユーザー認証が必要です。

一覧取得は認証済みユーザーであれば実行できます。削除は 管理者のみ で、それ以外は 403 Forbidden を返します。

登録者本人でも削除できない

createdBy に登録者が記録されますが、削除の可否には影響しません。管理者(SURVEY_ADMIN_EMAILS に登録されたユーザー)でなければ、自分が登録したデータでも削除できません。

過去質問データ一覧取得

概要

過去質問データの一覧を取得します。キーワードとカテゴリで絞り込めます。

URI

GET /api/question-library

クエリパラメータ

パラメータ データ型 必須 備考
q string 設問文・セクションタイトルでのキーワード検索
category string カテゴリでの絞り込み

レスポンス(200 OK)

{
  "ok": true,
  "data": [
    {
      "id": "…",
      "sourceSurveyId": "…",
      "sourceSurveyTitle": "ブランド認知度調査",
      "sourceQuestionId": "…",
      "sourceSectionId": "…",
      "sourceExternalSurveyId": null,
      "sourceExternalSurveyName": null,
      "sourceExternalQuestionId": null,
      "category": "ブランド",
      "sectionTitle": "認知",
      "questionType": "multi",
      "normalizedPayload": {
        "promptText": "以下のうち、知っているブランドをすべてお選びください。",
        "options": [
          { "label": "ブランド A", "isExclusive": false, "allowOtherInput": false, "isNotApplicable": false }
        ]
      },
      "createdAt": "2026-08-10T00:00:00.000Z",
      "createdBy": "…"
    }
  ]
}

例外処理

説明 ステータスコード ステータス名
認証ヘッダが欠落 401 Unauthorized

過去質問データ削除

概要

過去質問データを削除します。実行できるのは 管理者のみ です。

URI

DELETE /api/question-library/{itemId}
パラメータ データ型 必須 備考
itemId string ◯ 過去質問データの UUID

レスポンス(200 OK)

{ "ok": true, "data": { "deleted": true } }

例外処理

説明 ステータスコード ステータス名
管理者でない 403 Forbidden
過去質問データが存在しない 404 Not Found

処理フロー

  1. 管理者でなければ 403 を返す(データの存在確認より先に判定される)
  2. 該当データを削除する
  3. 削除対象が 1 件もなければ 404 を返す

出力のたびに置き換えられる

案件を再出力すると、その案件由来の登録は削除されて現在の設問で再登録されます。手動で削除しても、再出力すれば復活します。