Skip to content

チャットゲームサービスの API サーバー

Notifications You must be signed in to change notification settings

abe-tetsu/chat_api_server1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

仕様

友達と作る、チャットゲームの API サーバーです。 sendai.go の Gocon で発表予定。 クリーンアーキテクチャ等なにも考えずとりあえず API サーバーを作成します。 クリーンアーキテクチャで実装したパターンは作成中。

API 一覧

権限なし

以下の API は User トークンや Admin トークンなしで叩けます。

/api/users

ユーザーの一覧の取得

  • 実行例
curl http://localhost:1001/api/users
  • 期待される結果
{
  "users": [
    {
      "name": "name1",
      "id": "name1_12345",
      "status": "online",
      "chat_number": 15
    },
    {
      "name": "name2",
      "id": "name2_12345",
      "status": "offline",
      "chat_number": 120
    }
  ]
}

/api/signup

新規ユーザーの登録

  • 実行例
curl -H 'name:name3' -H 'address:[email protected]' http://localhost:1001/api/signup
  • 期待される結果
{
  "success": true
}

/api/login/user

一般ユーザーとしてログイン

  • 実行例
curl -H 'name:name3' -H 'address:[email protected]' -H 'password:ABC123abc' http://localhost:1001/api/login/user
  • 期待される結果
{
  "success": true,
  "id": "name1_12345",
  "token": "token_name1_12345abcdifgABC"
}

/api/login/admin

アドミンとしてログイン

  • 実行例
curl -H 'id:admin' -H 'password:ABC123abc' http://localhost:1001/api/login/admin
  • 期待される結果
{
  "success": true,
  "id": "admin1_12345",
  "token": "token_admin1_12345abcdifgABC"
}

権限あり: User トークン

以下の API はログイン時に帰ってくる User トークンが必要です。

/api/user/profile

User プロフィールの変更

  • 実行例
BODY='{
  "id":"user_xxx",
  "profile_message": "こんにちは!編集済です!"
}'

curl -i \
  -H 'token: token_name1_12345abcdifgABC' \
  -H 'Content-Type: application/json' \
  -d "$BODY" \
  http://localhost:1001/api/user/profile
  • 期待される結果
{
  "success": true
}

権限あり: Admin トークン

以下の API は Admin でログイン時に帰ってくる Admin トークンが必要です。

/api/admin/ban

特定のユーザーを ban できます。

  • 実行例
BODY='{
  "user_id": "token_name1_12345abcdifgABC",
  "reason": "不正なログイン"
}'

curl -i \
  -H 'token: token_admin1_12345abcdifgABC' \
  -d "$BODY" \
  --trace-ascii - http://localhost:1001/api/admin/ban
  • 期待される結果
{
  "success": true,
  "error": null
}

About

チャットゲームサービスの API サーバー

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages