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].
Отдельные вызовы описаны далее.