Difference between revisions of "API"
(Created page with "Навигация: Главная страница/Система ejudge/Использование/API") |
|||
(5 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 == | ||
+ | |||
+ | * <code>[[API:priv:get-submit|get-submit]]</code> | ||
+ | * <code>[[API:priv:submit-run|submit-run]]</code> | ||
+ | * <code>[[API:priv:submit-run-input|submit-run-input]]</code> | ||
+ | * <code>[[API:priv:get-user|get-user]]</code> | ||
+ | |||
+ | == Непривилегированный API == | ||
+ | |||
+ | * <code>[[API:unpriv:get-submit|get-submit]]</code> | ||
+ | * <code>[[API:unpriv:submit-run-input|submit-run-input]]</code> |
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].
Отдельные вызовы описаны далее.