Odyssage API (0.0.0)

Download OpenAPI specification:

License: MIT

Odyssage Backend API

シナリオ一覧全取得

シナリオの一覧を取得

Responses

Response samples

Content type
application/json
[
  • {
    }
]

公開シナリオ一覧取得

公開されているシナリオの一覧のみを取得

Responses

Response samples

Content type
application/json
[
  • {
    }
]

シナリオ詳細取得

指定したシナリオの詳細情報を取得します。

新API: RESTful命名統一に基づく推奨エンドポイント 旧エンドポイント /api/scenario/{id} は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

path Parameters
id
required
string <uuid>

取得するシナリオのUUID

Responses

Response samples

Content type
application/json
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "title": "失われた遺跡の謎",
  • "overview": "古代遺跡を探索する冒険シナリオ",
  • "visibility": "public",
  • "updatedAt": "2025-04-01T12:00:00Z"
}

ユーザ取得

指定したユーザを取得

Authorizations:
bearerAuth
path Parameters
uid
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string"
}

ユーザ登録

指定したユーザを登録

Authorizations:
bearerAuth
path Parameters
uid
required
string
Request Body schema: application/json
required
name
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "error": "string"
}

シナリオ作成

指定したユーザのシナリオを作成

Authorizations:
bearerAuth
path Parameters
uid
required
string
Request Body schema: application/json
required
id
required
string
title
required
string
overview
required
string
visibility
string
Default: "private"
Enum: "public" "private"

シナリオの公開設定(省略時はprivate)

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "overview": "string",
  • "visibility": "public"
}

Response samples

Content type
application/json
{
  • "message": "string"
}

ユーザーシナリオ一覧全取得

シナリオの一覧を取得

path Parameters
uid
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

ユーザーがストックしたシナリオ一覧の取得

指定されたユーザーがストックしたシナリオの一覧を返します

Authorizations:
bearerAuth
path Parameters
uid
required
string

ユーザーID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

ユーザーのストックにシナリオを追加

ユーザーが将来参照するためにシナリオをストック(保存)します

Authorizations:
bearerAuth
path Parameters
user_id
required
string

ユーザーID

scenario_id
required
string <uuid>

ストックするシナリオのID

Responses

ユーザーのストックからシナリオを削除

以前にストックしたシナリオをユーザーのコレクションから削除します

Authorizations:
bearerAuth
path Parameters
user_id
required
string

ユーザーID

scenario_id
required
string <uuid>

ストックから削除するシナリオのID

Responses

GraphDBシナリオ作成・更新

Neo4jにシナリオノードを作成または更新(RDBでの作成・更新後に呼び出し)

Authorizations:
bearerAuth
path Parameters
id
required
string

シナリオID (UUID)

Request Body schema: application/json
required
title
required
string [ 1 .. 100 ] characters

シナリオタイトル(冗長データ)

overview
required
string [ 1 .. 1000 ] characters

シナリオ概要(冗長データ)

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "overview": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "overview": "string"
}

GraphDBシーン作成・更新

Neo4jにシーンノードを作成または更新し、親シナリオとの関係性を構築

Authorizations:
bearerAuth
path Parameters
id
required
string

シーンID (UUID)

Request Body schema: application/json
required
title
required
string [ 1 .. 100 ] characters

シーンタイトル

overview
required
string [ 1 .. 1000 ] characters

シーン概要

scenarioId
required
string^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

親シナリオID (UUID)

order
required
integer >= 0

シーン順序 (0以上)

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "overview": "string",
  • "scenarioId": "string",
  • "order": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "title": "string",
  • "overview": "string",
  • "scenarioId": "string",
  • "order": 0
}

GraphDBシーン削除

Neo4jから指定されたシーンノードとその関係性を削除

Authorizations:
bearerAuth
path Parameters
id
required
string

シーンID (UUID)

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

シナリオに関連するGraphDBシーン一覧取得

指定されたシナリオに関連するGraphDBシーン一覧を順序順で取得

Authorizations:
bearerAuth
path Parameters
scenarioId
required
string^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]...

シナリオID (UUID)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

GraphDBシーン一括更新

Neo4jで指定シナリオの全シーンを削除後、新しいシーン配列で一括再構築します。楽観的更新との組み合わせでUX向上を図ります。

Authorizations:
bearerAuth
path Parameters
scenarioId
required
string <uuid>

シナリオID (UUID)

Request Body schema: application/json
required
required
Array of objects

更新するシーン配列(全て再構築)

Responses

Request samples

Content type
application/json
{
  • "scenes": [
    ]
}

Response samples

Content type
application/json
{
  • "scenes": [
    ],
  • "summary": {
    }
}

session

セッション一覧取得

公開セッションの一覧を取得するエンドポイント。 GMがリクエストする場合は、GM IDをクエリパラメータで指定することで、自分の非公開セッションも含めて取得できます。

query Parameters
gmId
string

GM ID (指定すると、そのGMのセッションのみを取得)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

セッション作成

GMがシナリオを選択して新しいセッションを作成するためのエンドポイント。 作成したセッションはGMが管理し、参加者を招待できます。

Request Body schema: application/json
required
gmId
required
string

セッションを管理するGMのユーザーID

scenarioId
required
string <uuid>

セッションのベースとなるシナリオID

title
required
string

セッションのタイトル

Responses

Request samples

Content type
application/json
{
  • "gmId": "user123",
  • "scenarioId": "550e8400-e29b-41d4-a716-446655440001",
  • "title": "未知の洞窟探検"
}

Response samples

Content type
application/json
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "gmId": "user123",
  • "scenarioId": "550e8400-e29b-41d4-a716-446655440001",
  • "title": "未知の洞窟探検",
  • "status": "準備中",
  • "createdAt": "2025-04-01T12:00:00Z"
}

セッション取得

特定のセッションの詳細情報を取得します。 セッションのタイトル、ステータス、関連するシナリオ情報などが含まれます。

path Parameters
id
required
string <uuid>

取得するセッションのID

Responses

Response samples

Content type
application/json
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "gmId": "user123",
  • "scenarioId": "550e8400-e29b-41d4-a716-446655440001",
  • "title": "未知の洞窟探検",
  • "status": "準備中",
  • "createdAt": "2025-04-01T12:00:00Z",
  • "updatedAt": "2025-04-01T12:00:00Z",
  • "scenarioTitle": "失われた遺跡の秘宝"
}

セッション作成(Game Master文脈)

ゲームマスター(GM)として新しいセッションを作成します。

新API: Game Master文脈特化に基づく推奨エンドポイント 旧エンドポイント POST /api/sessions は非推奨です。

権限: GMとしての認証が必要です。パラメータのuidと認証トークンのuidが一致している必要があります。

Authorizations:
None
path Parameters
uid
required
string

ゲームマスターのユーザーID

Request Body schema: application/json
required

作成するセッションの情報

scenarioId
required
string <uuid>

使用するシナリオのID

title
required
string [ 1 .. 255 ] characters

セッションのタイトル

Responses

Request samples

Content type
application/json
{
  • "scenarioId": "87654321-4321-4321-4321-cba987654321",
  • "title": "初心者歓迎!クトゥルフの呼び声"
}

Response samples

Content type
application/json
{
  • "id": "abcdef12-3456-7890-abcd-ef1234567890",
  • "gmId": "12345678-1234-1234-1234-123456789abc",
  • "scenarioId": "87654321-4321-4321-4321-cba987654321",
  • "title": "初心者歓迎!クトゥルフの呼び声",
  • "status": "準備中",
  • "createdAt": "2025-08-12T09:30:00Z"
}

ゲームマスター管理セッション一覧

指定したゲームマスターが作成・管理しているセッション一覧を取得します。

新API: RESTful命名統一・文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/sessions/gm/{gm_id} は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

path Parameters
uid
required
string

ゲームマスターのユーザーID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

セッション状態更新

ゲームマスターが自身が管理するセッションの状態を更新します。

新API: ロール名統一(gm → game-masters)に基づく推奨エンドポイント 旧エンドポイント /api/gm/{uid}/sessions/{id} は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

Authorizations:
bearerAuth
path Parameters
uid
required
string

ゲームマスターのユーザーID

id
required
string <uuid>

セッションID(UUID形式)

Request Body schema: application/json
required
status
required
string
Enum: "準備中" "進行中" "終了"

更新後のセッション状態

Responses

Request samples

Content type
application/json
Example
{
  • "status": "進行中"
}

Response samples

Content type
application/json
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "gm_id": "test-gm-id",
  • "scenario_id": "660e8400-e29b-41d4-a716-446655440001",
  • "title": "失われた遺跡の謎",
  • "status": "進行中",
  • "created_at": "2025-04-01T10:00:00Z",
  • "updated_at": "2025-04-01T12:00:00Z",
  • "scenario_title": "古代遺跡探索"
}

game-master

セッション作成(Game Master文脈)

ゲームマスター(GM)として新しいセッションを作成します。

新API: Game Master文脈特化に基づく推奨エンドポイント 旧エンドポイント POST /api/sessions は非推奨です。

権限: GMとしての認証が必要です。パラメータのuidと認証トークンのuidが一致している必要があります。

Authorizations:
None
path Parameters
uid
required
string

ゲームマスターのユーザーID

Request Body schema: application/json
required

作成するセッションの情報

scenarioId
required
string <uuid>

使用するシナリオのID

title
required
string [ 1 .. 255 ] characters

セッションのタイトル

Responses

Request samples

Content type
application/json
{
  • "scenarioId": "87654321-4321-4321-4321-cba987654321",
  • "title": "初心者歓迎!クトゥルフの呼び声"
}

Response samples

Content type
application/json
{
  • "id": "abcdef12-3456-7890-abcd-ef1234567890",
  • "gmId": "12345678-1234-1234-1234-123456789abc",
  • "scenarioId": "87654321-4321-4321-4321-cba987654321",
  • "title": "初心者歓迎!クトゥルフの呼び声",
  • "status": "準備中",
  • "createdAt": "2025-08-12T09:30:00Z"
}

ゲームマスター管理セッション一覧

指定したゲームマスターが作成・管理しているセッション一覧を取得します。

新API: RESTful命名統一・文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/sessions/gm/{gm_id} は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

path Parameters
uid
required
string

ゲームマスターのユーザーID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

セッション状態更新

ゲームマスターが自身が管理するセッションの状態を更新します。

新API: ロール名統一(gm → game-masters)に基づく推奨エンドポイント 旧エンドポイント /api/gm/{uid}/sessions/{id} は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

Authorizations:
bearerAuth
path Parameters
uid
required
string

ゲームマスターのユーザーID

id
required
string <uuid>

セッションID(UUID形式)

Request Body schema: application/json
required
status
required
string
Enum: "準備中" "進行中" "終了"

更新後のセッション状態

Responses

Request samples

Content type
application/json
Example
{
  • "status": "進行中"
}

Response samples

Content type
application/json
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "gm_id": "test-gm-id",
  • "scenario_id": "660e8400-e29b-41d4-a716-446655440001",
  • "title": "失われた遺跡の謎",
  • "status": "進行中",
  • "created_at": "2025-04-01T10:00:00Z",
  • "updated_at": "2025-04-01T12:00:00Z",
  • "scenario_title": "古代遺跡探索"
}

scenario

シナリオ作成(Author文脈)

シナリオ作成者(Author)として新しいシナリオを作成します。

新API: Author文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/users/{uid}/scenario は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

Authorizations:
bearerAuth
path Parameters
uid
required
string

シナリオ作成者(Author)のユーザーID

Request Body schema: application/json
required
id
required
string <uuid>

シナリオID(UUID形式)

title
required
string [ 1 .. 100 ] characters

シナリオタイトル

overview
required
string [ 1 .. 1000 ] characters

シナリオ概要

visibility
string
Default: "private"
Enum: "public" "private"

シナリオの公開設定(省略時はprivate)

Responses

Request samples

Content type
application/json
Example
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "title": "失われた遺跡の謎",
  • "overview": "古代文明の謎を解き明かす冒険シナリオ",
  • "visibility": "private"
}

Response samples

Content type
application/json
{
  • "message": "シナリオが正常に作成されました"
}

Author管理シナリオ一覧

指定したシナリオ作成者(Author)が作成・管理しているシナリオ一覧を取得します。

新API: Author文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/users/{uid}/scenario は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

path Parameters
uid
required
string

シナリオ作成者(Author)のユーザーID

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

シナリオ更新(Author文脈)

シナリオ作成者(Author)として自身が作成したシナリオを更新します。

新API: Author文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/users/{uid}/scenario/{id} は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

Authorizations:
bearerAuth
path Parameters
uid
required
string

シナリオ作成者(Author)のユーザーID

id
required
string <uuid>

シナリオID(UUID形式)

Request Body schema: application/json
required
title
required
string [ 1 .. 100 ] characters

シナリオタイトル

overview
required
string [ 1 .. 1000 ] characters

シナリオ概要

visibility
string
Enum: "public" "private"

シナリオの公開設定

updatedAt
string <date-time>

更新日時(通常は自動設定される)

Responses

Request samples

Content type
application/json
Example
{
  • "title": "失われた遺跡の謎(改訂版)",
  • "overview": "古代文明の謎を解き明かす冒険シナリオ。新たな展開を追加。",
  • "visibility": "private"
}

Response samples

Content type
application/json
{
  • "message": "必須フィールドが不足しています"
}

author

シナリオ作成(Author文脈)

シナリオ作成者(Author)として新しいシナリオを作成します。

新API: Author文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/users/{uid}/scenario は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

Authorizations:
bearerAuth
path Parameters
uid
required
string

シナリオ作成者(Author)のユーザーID

Request Body schema: application/json
required
id
required
string <uuid>

シナリオID(UUID形式)

title
required
string [ 1 .. 100 ] characters

シナリオタイトル

overview
required
string [ 1 .. 1000 ] characters

シナリオ概要

visibility
string
Default: "private"
Enum: "public" "private"

シナリオの公開設定(省略時はprivate)

Responses

Request samples

Content type
application/json
Example
{
  • "id": "550e8400-e29b-41d4-a716-446655440000",
  • "title": "失われた遺跡の謎",
  • "overview": "古代文明の謎を解き明かす冒険シナリオ",
  • "visibility": "private"
}

Response samples

Content type
application/json
{
  • "message": "シナリオが正常に作成されました"
}

Author管理シナリオ一覧

指定したシナリオ作成者(Author)が作成・管理しているシナリオ一覧を取得します。

新API: Author文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/users/{uid}/scenario は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

path Parameters
uid
required
string

シナリオ作成者(Author)のユーザーID

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

シナリオ更新(Author文脈)

シナリオ作成者(Author)として自身が作成したシナリオを更新します。

新API: Author文脈特化に基づく推奨エンドポイント 旧エンドポイント /api/users/{uid}/scenario/{id} は非推奨です。

注意: レスポンス形式は旧APIと完全に同一です。

Authorizations:
bearerAuth
path Parameters
uid
required
string

シナリオ作成者(Author)のユーザーID

id
required
string <uuid>

シナリオID(UUID形式)

Request Body schema: application/json
required
title
required
string [ 1 .. 100 ] characters

シナリオタイトル

overview
required
string [ 1 .. 1000 ] characters

シナリオ概要

visibility
string
Enum: "public" "private"

シナリオの公開設定

updatedAt
string <date-time>

更新日時(通常は自動設定される)

Responses

Request samples

Content type
application/json
Example
{
  • "title": "失われた遺跡の謎(改訂版)",
  • "overview": "古代文明の謎を解き明かす冒険シナリオ。新たな展開を追加。",
  • "visibility": "private"
}

Response samples

Content type
application/json
{
  • "message": "必須フィールドが不足しています"
}