Difference between revisions of "API"

From EjudgeWiki
 
 
(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

Аутентификация

Все 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].

Отдельные вызовы описаны далее.

Привилегированный API

Непривилегированный API