友達と作る、チャットゲームの API サーバーです。 sendai.go の Gocon で発表予定。 クリーンアーキテクチャで実装しました。
以下の API は User トークンや Admin トークンなしで叩けます。
ユーザーの一覧の取得
- 実行例
curl http://localhost:1001/api/users
- 期待される結果
{
"Users": [
{
"name": "テストユーザー",
"ID": "test_1234",
"Token": {
"String": "test_1234vl5",
"Valid": true
},
"chatNumber": 10
},
{
"name": "テストユーザー",
"ID": "test_5678",
"Token": {
"String": "test_5678_1234",
"Valid": true
},
"chatNumber": 10
}
]
}
新規ユーザーの登録
- 実行例
curl -H 'name:name3' -H 'address:tmp@tmp.com' -H 'password:tmp' http://localhost:1001/api/signup/user
- 期待される結果
{
"success": true
}
一般ユーザーとしてログイン
- 実行例
curl -H 'name:テストユーザー' -H 'address:test1@test.com' -H 'password:test' http://localhost:1001/api/login/user
- 期待される結果
{
"success": true,
"id": "test_1234",
"token": {
"String": "test_1234adM",
"Valid": false
}
}
アドミンとしてログイン
- 実行例
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" \
http://localhost:1001/api/admin/ban
- 期待される結果
{
"success": true,
"error": null
}