Go-Shisha API (1.0)

Download OpenAPI specification:

シーシャSNSアプリケーションのバックエンドAPI このAPIはシーシャの投稿、ユーザー管理を行います

auth

ログイン

メールアドレスとパスワードでログインし、JWT(Cookie)を発行する

Request Body schema: application/json
required

ログイン情報

email
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "email": "string",
  • "password": "string"
}

Response samples

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

ログアウト

Cookieを削除し、Refresh Tokenを無効化する

Authorizations:
BearerAuth

Responses

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

現在のユーザー情報取得

認証されたユーザーの情報を取得する

Authorizations:
BearerAuth

Responses

Response samples

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

アクセストークンのリフレッシュ

Refresh Tokenを使って新しいAccess Tokenを発行する

Responses

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

ユーザー登録

新しいユーザーを登録する

Request Body schema: application/json
required

ユーザー登録情報

display_name
string
email
required
string
password
required
string >= 12 characters

Responses

Request samples

Content type
application/json
{
  • "display_name": "string",
  • "email": "string",
  • "password": "stringstring"
}

Response samples

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

flavors

フレーバー一覧取得

全てのフレーバーの一覧を取得します

Responses

Response samples

Content type
application/json
[
  • {
    }
]

posts

投稿一覧取得

全ての投稿の一覧を取得します(総数付き)。認証済みの場合、各投稿のいいね状態(is_liked)を含みます

Responses

Response samples

Content type
application/json
{
  • "posts": [
    ],
  • "total": 0
}

投稿作成

新しい投稿を作成します(認証必須)。注意: slides内のflavor_idが無効な場合、そのスライドはFlavorなしで作成されます(エラーにはなりません)

Authorizations:
BearerAuth
Request Body schema: application/json
required

投稿情報

required
Array of objects (go-shisha-backend_internal_models.SlideInput) [ 1 .. 10 ] items

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "id": 0,
  • "is_liked": true,
  • "likes": 0,
  • "slides": [
    ],
  • "user": {
    },
  • "user_id": 0
}

投稿削除

指定された投稿を論理削除します(認証必須・投稿所有者のみ)

Authorizations:
BearerAuth
path Parameters
id
required
integer

投稿ID

Responses

Response samples

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

投稿詳細取得

指定されたIDの投稿情報を取得します。認証済みの場合、いいね状態(is_liked)を含みます

path Parameters
id
required
integer

投稿ID

Responses

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "id": 0,
  • "is_liked": true,
  • "likes": 0,
  • "slides": [
    ],
  • "user": {
    },
  • "user_id": 0
}

投稿編集

指定された投稿のスライドのテキスト・フレーバーを更新します(認証必須・投稿所有者のみ)。各スライドは id で更新対象を指定します。全上書き型のため、全スライドの全フィールドを送信してください。text を省略すると空文字、flavor_id を省略または null で渡すとフレーバーが解除されます。

Authorizations:
BearerAuth
path Parameters
id
required
integer

投稿ID

Request Body schema: application/json
required

更新内容

required
Array of objects (go-shisha-backend_internal_models.UpdateSlideInput) [ 1 .. 10 ] items

Responses

Request samples

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

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "id": 0,
  • "is_liked": true,
  • "likes": 0,
  • "slides": [
    ],
  • "user": {
    },
  • "user_id": 0
}

投稿にいいね

指定された投稿にいいねを追加します(認証必須)

Authorizations:
BearerAuth
path Parameters
id
required
integer

投稿ID

Responses

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "id": 0,
  • "is_liked": true,
  • "likes": 0,
  • "slides": [
    ],
  • "user": {
    },
  • "user_id": 0
}

投稿のいいねを取り消す

指定された投稿のいいねを取り消します(認証必須)

Authorizations:
BearerAuth
path Parameters
id
required
integer

投稿ID

Responses

Response samples

Content type
application/json
{
  • "created_at": "string",
  • "id": 0,
  • "is_liked": true,
  • "likes": 0,
  • "slides": [
    ],
  • "user": {
    },
  • "user_id": 0
}

uploads

画像アップロード

複数の画像を一括アップロードし、保存されたURLの配列を返却します

Authorizations:
BearerAuth
Request Body schema: multipart/form-data
required
images
required
string <binary>

アップロードする画像(複数可)

Responses

Response samples

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

users

ユーザー一覧取得

全てのユーザーの一覧を取得します(総数付き)

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "users": [
    ]
}

ユーザー詳細取得

指定されたIDのユーザー情報を取得します

path Parameters
id
required
integer

ユーザーID

Responses

Response samples

Content type
application/json
{
  • "description": "string",
  • "display_name": "string",
  • "email": "string",
  • "external_url": "string",
  • "icon_url": "string",
  • "id": 0
}

ユーザーの投稿一覧取得

指定されたユーザーの全ての投稿を取得します(総数付き)

path Parameters
id
required
integer

ユーザーID

Responses

Response samples

Content type
application/json
{
  • "posts": [
    ],
  • "total": 0
}