Авторизация в API

API сервиса sstats.net предоставляется бесплатно и доступно для использования без необходимости получения API-ключа (с ограничением по запросам в минуту). ## Ограничения и лимиты ### Публичный доступ (без API-ключа) При использовании API без авторизации действуют следующие ограничения: - **30 запросов в минуту** с одного IP-адреса - **300 запросов в минуту** суммарно для всех пользователей без ключа ### Авторизованный доступ (с персональным API-ключом) После регистрации в системе пользователям предоставляется персональный API-ключ со следующими преимуществами: - **150 запросов в минуту** - Доступ к технической поддержке ## Получение API-ключа Персональный API-ключ становится доступен сразу после регистрации на сайте. Для его получения необходимо: 1. Пройти процедуру регистрации на sstats.net 2. Перейти на страницу профиля 3. Ключ уже будет сгенерирован и отображен в профиле На текущий момент персональный API-ключ не предоставляет доступ к дополнительным функциям по сравнению с публичным доступом, а только расширеяет лимиты запросов. --- **Данное руководство описывает три основных способа передачи API ключа для авторизации на сервере.** ## 1. Через заголовок Authorization (рекомендуемый способ) **Формат:** `Authorization: ApiKey <ВАШ_API_КЛЮЧ>` Это наиболее безопасный и стандартизированный способ передачи API ключа. ### Пример запроса: ```bash curl -H "Authorization: ApiKey abc123def456ghi789" \ https://api.sstats.net/api/дуф ``` ### Пример с использованием fetch в JavaScript: ```javascript fetch('https://api.sstats.net/leagues', { headers: { 'Authorization': 'ApiKey abc123def456ghi789', 'Content-Type': 'application/json' } }) ``` ### Пример с использованием Python requests: ```python import requests headers = { 'Authorization': 'ApiKey abc123def456ghi789' } response = requests.get('https://api.sstats.net/leagues', headers=headers) ``` ## 2. Через заголовок apikey **Формат:** `apikey: <ВАШ_API_КЛЮЧ>` Альтернативный способ через кастомный заголовок. ### Пример запроса: ```bash curl -H "apikey: abc123def456ghi789" \ https://api.sstats.net/leagues ``` ### Пример с использованием fetch в JavaScript: ```javascript fetch('https://api.sstats.net/leagues', { headers: { 'apikey': 'abc123def456ghi789', 'Content-Type': 'application/json' } }) ``` ### Пример с использованием Python requests: ```python import requests headers = { 'apikey': 'abc123def456ghi789' } response = requests.get('https://api.sstats.net/leagues', headers=headers) ``` ## 3. Через query параметр в URL **Формат:** добавление `apikey=<ВАШ_API_КЛЮЧ>` в качестве параметра запроса ⚠️ **Внимание:** Этот способ менее безопасен, так как API ключ будет виден в URL и может попасть в логи сервера. ### Правила построения URL с query параметрами: Рассмотрим на примере `https://api.sstats.net/account/info`: #### Если в URL еще нет параметров: - Используйте `?` для добавления первого параметра - **Пример:** `https://api.sstats.net/account/info?apikey=abc123def456ghi789` #### Если в URL уже есть параметры: - Используйте `&` для добавления дополнительных параметров - **Пример:** `https://api.sstats.net/account/info?format=json&apikey=abc123def456ghi789` ### Примеры запросов: ```bash # Первый параметр (используем ?) curl https://api.sstats.net/account/info?apikey=abc123def456ghi789 # Дополнительный параметр (используем &) curl https://api.sstats.net/account/info?format=json&limit=100&apikey=abc123def456ghi789 ``` ### Пример с использованием JavaScript: ```javascript // Создание URL с параметрами const baseUrl = 'https://api.sstats.net/account/info'; const params = new URLSearchParams({ 'format': 'json', 'apikey': 'abc123def456ghi789' }); const url = `${baseUrl}?${params}`; // Результат: https://api.sstats.net/account/info?format=json&apikey=abc123def456ghi789 fetch(url) ``` ## Рекомендации по безопасности 1. **Предпочтительный способ:** Используйте заголовок `Authorization: ApiKey` (способ №1) 2. **Избегайте:** Передачи API ключа через URL параметры в продакшене 3. **Всегда используйте HTTPS** для защиты API ключа от перехвата 4. **Храните API ключи в безопасном месте**, не включайте их в публичный код ## Сводная таблица способов | Способ | Безопасность | Стандартность | Рекомендуется | |--------|-------------|---------------|---------------| | Authorization: ApiKey | Высокая | Высокая | ✅ Да | | apikey заголовок | Высокая | Средняя | ⚠️ Приемлемо | | URL параметр | Низкая | Низкая | ❌ Не рекомендуется |

|API|Туториал|