友達と作る、チャットゲームの API サーバーです。 sendai.go の Gocon で発表予定。 クリーンアーキテクチャ等なにも考えずとりあえず API サーバーを作成します。 クリーンアーキテクチャで実装したパターンは作成中。
以下の API は User トークンや Admin トークンなしで叩けます。
ユーザーの一覧の取得
- 実行例
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
}
]
}
新規ユーザーの登録
- 実行例
curl -H 'name:name3' -H 'address:[email protected]' http://localhost:1001/api/signup
- 期待される結果
{
"success": true
}
一般ユーザーとしてログイン
- 実行例
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"
}
アドミンとしてログイン
- 実行例
curl -H 'id:admin' -H 'password:ABC123abc' http://localhost:1001/api/login/admin
- 期待される結果
{
"success": true,
"id": "admin1_12345",
"token": "token_admin1_12345abcdifgABC"
}
以下の API はログイン時に帰ってくる User トークンが必要です。
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
}
以下の API は Admin でログイン時に帰ってくる Admin トークンが必要です。
特定のユーザーを 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
}