Board Game Prototype API (1.0.0)

Download OpenAPI specification:

概要

このAPIは、ボードゲームプロトタイプの作成と管理を行うためのものです。

認証

  • 基本的にAPIエンドポイントは認証が必要です
  • アプリケーションを起動し、Google OAuth2.0を使用した認証を行なってください(Swagger UIでは認証ができません)
  • 認証後、Cookieにセッション情報が保存されます

Users

ユーザー管理API

ユーザー検索

ユーザー名でユーザーを検索します。

query Parameters
username
required
string

検索するユーザー名

Responses

Response samples

Content type
application/json
[
  • {
    }
]

ユーザー情報更新

ユーザー名を更新します。

path Parameters
userId
required
string

更新するユーザーのID

Request Body schema: application/json
required
username
required
string

新しいユーザー名

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "username": "string",
  • "createdAt": "string",
  • "updatedAt": "string"
}

Prototypes

プロトタイプ管理API

特定のプロトタイプ取得

指定されたIDのプロトタイプを取得します。

path Parameters
prototypeId
required
string

プロトタイプのID

Responses

Response samples

Content type
application/json
{
  • "prototype": {
    }
}

プロトタイプ更新

指定されたIDのプロトタイプを更新します。

path Parameters
prototypeId
required
string

プロトタイプのID

Request Body schema: application/json
required
name
string
minPlayers
integer
maxPlayers
integer

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "minPlayers": 0,
  • "maxPlayers": 0
}

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8",
  • "name": "string",
  • "type": "MASTER",
  • "sourceVersionPrototypeId": "eae97025-fe2c-4bf9-bae6-fae570850ce5",
  • "createdAt": "string",
  • "updatedAt": "string"
}

プロトタイプ削除

指定されたIDのプロトタイプを削除します。

path Parameters
prototypeId
required
string

プロトタイプのID

Responses

Response samples

Content type
application/json
{
  • "message": "正常に処理が完了しました"
}

Images

画像管理API

画像アップロード

S3に画像をアップロードし、画像のメタデータを保存します。

Request Body schema: multipart/form-data
required
image
string <binary>

アップロードする画像ファイル

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "displayName": "string",
  • "storagePath": "string",
  • "contentType": "string",
  • "fileSize": 0,
  • "uploaderUserId": "f1aa83f1-b765-4894-96a9-08b2a96994ba",
  • "createdAt": "string",
  • "updatedAt": "string"
}

画像取得

S3から指定された画像を取得し、画像データを直接返します。

path Parameters
imageId
required
string

取得する画像のID

Responses

Response samples

Content type
application/json
{
  • "error": "リクエストが不正です"
}

画像削除

S3から指定された画像を削除します。

path Parameters
imageId
required
string

削除する画像のID

query Parameters
prototypeId
required
string

プロトタイプID

partId
required
number

パーツID

side
required
string
Enum: "front" "back"

面(front または back)

emitUpdate
required
string
Default: false
Enum: true false

更新をemitするかどうか(デフォルトはfalse)

Responses

Response samples

Content type
application/json
{
  • "error": "リクエストが不正です"
}

Auth

認証関連のAPI

Googleログイン

Googleアカウントを使用してログインします。

Responses

Googleログインコールバック

GoogleログインのコールバックURL。

Responses

ログアウト

現在のセッションを終了し、ユーザーをログアウトします。

Responses

Response samples

Content type
application/json
{
  • "message": "正常に処理が完了しました"
}

ユーザー情報取得

現在ログインしているユーザーの情報を取得します。

Responses

Response samples

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

Projects

プロジェクト一覧取得

ユーザーがアクセス可能なプロジェクトの一覧を取得します。

Responses

Response samples

Content type
application/json
[
  • {
    }
]

プロジェクト作成

新しいプロジェクトを作成します。

Request Body schema: application/json
required
name
string

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "createdAt": "string",
  • "updatedAt": "string"
}

プロトタイプルーム作成

指定されたプロジェクトのプロトタイプルーム(VERSIONとINSTANCE)を作成します。

path Parameters
projectId
required
string

プロジェクトのID

Request Body schema: application/json
required
name
required
string

プロトタイプ名

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "version": {
    },
  • "instance": {
    }
}

プロトタイプルーム削除

指定されたプロジェクトのプロトタイプルーム(VERSIONとINSTANCE)を削除します。

path Parameters
projectId
required
string

プロジェクトのID

prototypeId
required
string

削除するVERSIONプロトタイプのID

Responses

Response samples

Content type
application/json
{
  • "message": "正常に処理が完了しました"
}

特定のプロジェクトの詳細とプロトタイプ一覧取得

指定されたIDのプロジェクトの詳細情報と、そのプロジェクトに属するプロトタイプの一覧を取得します。

path Parameters
projectId
required
string

プロジェクトのID

Responses

Response samples

Content type
application/json
{
  • "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  • "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b",
  • "createdAt": "string",
  • "updatedAt": "string",
  • "prototypes": [
    ]
}

プロジェクト削除

指定されたIDのプロジェクトを削除します。

path Parameters
projectId
required
string

プロジェクトのID

Responses

Response samples

Content type
application/json
{
  • "message": "正常に処理が完了しました"
}

プロジェクトへのアクセス権を取得

指定されたプロジェクトにアクセス可能なユーザーを取得します。

path Parameters
projectId
required
string

プロジェクトのID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

ユーザーにプロジェクトへのアクセス権を付与

指定されたプロジェクトにユーザーを招待します。

path Parameters
projectId
required
string

プロジェクトのID

Request Body schema: application/json
required
guestIds
Array of strings

招待するユーザーのIDリスト

roleType
string
Default: "editor"
Enum: "admin" "editor" "viewer"

付与するロールタイプ(admin:管理者、editor:編集者、viewer:閲覧者)

Responses

Request samples

Content type
application/json
{
  • "guestIds": [
    ],
  • "roleType": "admin"
}

Response samples

Content type
application/json
{
  • "message": "正常に処理が完了しました"
}

ユーザーのアクセス権を削除

指定されたプロジェクトからユーザーのアクセス権を削除します。

path Parameters
projectId
required
string

プロジェクトのID

guestId
required
string

ゲストユーザーのID

Responses

Response samples

Content type
application/json
{
  • "message": "正常に処理が完了しました"
}

プロジェクトの複製

指定されたプロジェクトを複製します。

path Parameters
projectId
required
string

プロジェクトのID

Responses

Response samples

Content type
application/json
{
  • "message": "正常に処理が完了しました"
}

プロジェクトのメンバー一覧取得

プロジェクトのメンバーとそのロールを取得します。

path Parameters
projectId
required
string

プロジェクトのID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

プロジェクトのロール一覧取得

プロジェクトのユーザーロール一覧を取得します。

path Parameters
projectId
required
string

プロジェクトのID

Responses

Response samples

Content type
application/json
[
  • {
    }
]

プロジェクトにロールを追加

ユーザーにプロジェクトのロールを割り当てます。

path Parameters
projectId
required
string

プロジェクトのID

Request Body schema: application/json
required
userId
string
roleName
string
Enum: "admin" "editor" "viewer"

Responses

Request samples

Content type
application/json
{
  • "userId": "string",
  • "roleName": "admin"
}

プロジェクトからロールを削除

ユーザーからプロジェクトのロールを削除します。

path Parameters
projectId
required
string

プロジェクトのID

userId
required
string

ユーザーのID

Responses

プロジェクトのロールを更新

ユーザーのプロジェクトロールを変更します。

path Parameters
projectId
required
string

プロジェクトのID

userId
required
string

ユーザーのID

Request Body schema: application/json
required
roleName
string
Enum: "admin" "editor" "viewer"

Responses

Request samples

Content type
application/json
{
  • "roleName": "admin"
}