Difference between revisions of "API"
| (2 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[API]]  | Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[API]]  | ||
| + | |||
| + | == Аутентификация ==  | ||
| + | |||
| + | Все API-методы поддерживают как аутентификацию с помощью cookie + session,  | ||
| + | как для веб-браузера, так и аутентификацию с помощью API ключа.  | ||
| + | |||
| + | API ключ создается в веб-интерфейсе мастера турнира или участника турнира.  | ||
| + | Мастер турнира может создавать привилегированные ключи с привязкой  | ||
| + | к турниру или без привязки к турниру, участник турнира может создавать  | ||
| + | ключи API только для этого турнира.  | ||
| + | |||
| + | === Создание привилегированного ключа API ===  | ||
| + | |||
| + | Для создания ключа в интерфейсе администратора выберите пункт меню  | ||
| + | View / API Keys. Затем можно уточнить параметры создаваемого  | ||
| + | ключа в разделе "Create new API key".  | ||
| + | |||
| + | * "Duration" позволяет задать срок действия ключа. По-умолчанию он неограничен.  | ||
| + | * "Contest ID" позволяет указать номер турнира, для которого действует ключ. Если не указать номер турнира, ключ действует для всех турниров.  | ||
| + | * "Priv Level" позволяет задать уровень привилегий: "User" — обычный участнк турнира, "Observer" — наблюдатель, "Judge" — судья, "Admin" — администратор турнира.  | ||
| + | |||
| + | Затем при нажатии на "Submit" будет создана новый ключ API.  | ||
| + | |||
| + | В браузере отобразятся данные созданного ключа. Из них в текущей версии  | ||
| + | требуется только "API key token" (это первая строка таблицы).  | ||
| + | Например, пусть API key token равен <code>qUcNocRPJnK7iXE8Wm1ty6XfB5vUVVJIjSrYEmoha-c</code>. Чтобы использовать токен для аутентификации в запросах,  | ||
| + | в http заголовок нужно добавить строку:  | ||
| + | |||
| + |  Authorization: Bearer AQAA<TOKEN>  | ||
| + | |||
| + | То есть перед значением токена приписывается <code>AQAA</code>.  | ||
| + | |||
| + | Полная документация на API: [https://ejudge.ru/swagger/index.html].  | ||
| + | |||
| + | Отдельные вызовы описаны далее.  | ||
== Привилегированный API ==  | == Привилегированный API ==  | ||
| Line 6: | Line 41: | ||
* <code>[[API:priv:submit-run|submit-run]]</code>  | * <code>[[API:priv:submit-run|submit-run]]</code>  | ||
* <code>[[API:priv:submit-run-input|submit-run-input]]</code>  | * <code>[[API:priv:submit-run-input|submit-run-input]]</code>  | ||
| + | * <code>[[API:priv:get-user|get-user]]</code>  | ||
== Непривилегированный API ==  | == Непривилегированный API ==  | ||
Latest revision as of 23:47, 8 February 2024
Навигация: Главная страница/Система ejudge/Использование/API
Contents
Аутентификация
Все API-методы поддерживают как аутентификацию с помощью cookie + session, как для веб-браузера, так и аутентификацию с помощью API ключа.
API ключ создается в веб-интерфейсе мастера турнира или участника турнира. Мастер турнира может создавать привилегированные ключи с привязкой к турниру или без привязки к турниру, участник турнира может создавать ключи API только для этого турнира.
Создание привилегированного ключа API
Для создания ключа в интерфейсе администратора выберите пункт меню View / API Keys. Затем можно уточнить параметры создаваемого ключа в разделе "Create new API key".
- "Duration" позволяет задать срок действия ключа. По-умолчанию он неограничен.
 - "Contest ID" позволяет указать номер турнира, для которого действует ключ. Если не указать номер турнира, ключ действует для всех турниров.
 - "Priv Level" позволяет задать уровень привилегий: "User" — обычный участнк турнира, "Observer" — наблюдатель, "Judge" — судья, "Admin" — администратор турнира.
 
Затем при нажатии на "Submit" будет создана новый ключ API.
В браузере отобразятся данные созданного ключа. Из них в текущей версии
требуется только "API key token" (это первая строка таблицы).
Например, пусть API key token равен qUcNocRPJnK7iXE8Wm1ty6XfB5vUVVJIjSrYEmoha-c. Чтобы использовать токен для аутентификации в запросах,
в http заголовок нужно добавить строку:
Authorization: Bearer AQAA<TOKEN>
То есть перед значением токена приписывается AQAA.
Полная документация на API: [1].
Отдельные вызовы описаны далее.