6.8 KiB
		
	
	
	
	
	
			
		
		
	
	
			6.8 KiB
		
	
	
	
	
	
API Examples
Примеры использования API для HubGW.
Аутентификация
Все запросы (кроме /health) требуют заголовок X-API-Key с правильным API ключом.
curl -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     http://localhost:8080/api/v1/health/
Homes
Создать/обновить дом
curl -X PUT \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "name": "my_home",
       "world": "world",
       "x": 100.5,
       "y": 64.0,
       "z": 200.3,
       "yaw": 90.0,
       "pitch": 0.0,
       "is_public": 0
     }' \
     http://localhost:8080/api/v1/homes/
Получить дом
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "name": "my_home"
     }' \
     http://localhost:8080/api/v1/homes/get
Список домов игрока
curl -H "X-API-Key: your-secret-api-key" \
     http://localhost:8080/api/v1/homes/123e4567-e89b-12d3-a456-426614174000
Kits
Запросить набор
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "kit_name": "starter"
     }' \
     http://localhost:8080/api/v1/kits/claim
Cooldowns
Проверить кулдаун
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "key": "kit_starter"
     }' \
     http://localhost:8080/api/v1/cooldowns/check
Установить кулдаун
curl -X PUT \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "key": "kit_starter"
     }' \
     "http://localhost:8080/api/v1/cooldowns/touch?seconds=3600&player_uuid=123e4567-e89b-12d3-a456-426614174000"
Warps
Создать варп
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "spawn",
       "world": "world",
       "x": 0.0,
       "y": 64.0,
       "z": 0.0,
       "yaw": 0.0,
       "pitch": 0.0,
       "is_public": 1,
       "description": "Main spawn point"
     }' \
     http://localhost:8080/api/v1/warps/
Обновить варп
curl -X PATCH \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "spawn",
       "world": "world_nether",
       "description": "Updated spawn point"
     }' \
     http://localhost:8080/api/v1/warps/
Удалить варп
curl -X DELETE \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "spawn"
     }' \
     http://localhost:8080/api/v1/warps/
Получить варп
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "name": "spawn"
     }' \
     http://localhost:8080/api/v1/warps/get
Список варпов
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "page": 1,
       "size": 20,
       "world": "world",
       "is_public": 1
     }' \
     http://localhost:8080/api/v1/warps/list
Whitelist
Добавить игрока в вайтлист
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_name": "PlayerName",
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "added_by": "admin",
       "reason": "VIP player"
     }' \
     http://localhost:8080/api/v1/whitelist/add
Удалить игрока из вайтлиста
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_name": "PlayerName"
     }' \
     http://localhost:8080/api/v1/whitelist/remove
Проверить вайтлист
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_name": "PlayerName"
     }' \
     http://localhost:8080/api/v1/whitelist/check
Список вайтлиста
curl -H "X-API-Key: your-secret-api-key" \
     http://localhost:8080/api/v1/whitelist/
Punishments
Создать наказание
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "player_name": "PlayerName",
       "punishment_type": "ban",
       "reason": "Cheating",
       "staff_uuid": "987fcdeb-51a2-43d1-b456-426614174000",
       "staff_name": "Admin",
       "expires_at": "2024-12-31T23:59:59Z"
     }' \
     http://localhost:8080/api/v1/punishments/
Отменить наказание
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "punishment_id": "456e7890-e89b-12d3-a456-426614174000",
       "revoked_by": "987fcdeb-51a2-43d1-b456-426614174000",
       "revoked_reason": "Appeal accepted"
     }' \
     http://localhost:8080/api/v1/punishments/revoke
Запрос наказаний
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "punishment_type": "ban",
       "is_active": true,
       "page": 1,
       "size": 20
     }' \
     http://localhost:8080/api/v1/punishments/query
Статус бана
curl -H "X-API-Key: your-secret-api-key" \
     http://localhost:8080/api/v1/punishments/ban/123e4567-e89b-12d3-a456-426614174000
Статус мута
curl -H "X-API-Key: your-secret-api-key" \
     http://localhost:8080/api/v1/punishments/mute/123e4567-e89b-12d3-a456-426614174000
Audit
Логирование команды
curl -X POST \
     -H "X-API-Key: your-secret-api-key" \
     -H "Content-Type: application/json" \
     -d '{
       "player_uuid": "123e4567-e89b-12d3-a456-426614174000",
       "player_name": "PlayerName",
       "command": "tp",
       "arguments": ["player2"],
       "server": "hub",
       "timestamp": "2024-01-01T12:00:00Z"
     }' \
     http://localhost:8080/api/v1/audit/commands