Difference between revisions of "Внешние идентификаторы пользователей"

From EjudgeWiki
(Created page with "Навигация: Главная страница/Система ejudge/Использование/Внешние идентификаторы пол...")
 
(...)
Line 1: Line 1:
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Внешние идентификаторы пользователей]]
 
Навигация: [[Main Page|Главная страница]]/[[Система ejudge]]/[[Использование]]/[[Внешние идентификаторы пользователей]]
 +
 +
Поддерживается с версии [[Изменения в версии 3.10.4|3.10.4]].
 +
 +
Внешние идентификаторы пользователей - это дополнительная информация,
 +
которая хранится для каждой посылки. При отправке решения на тестирование
 +
с помощью запросов [[API:priv:submit-run]] или [[API:priv:submit-run-input]]
 +
можно задать параметр <code>ext_user</code>, значение которого будет
 +
сохранено в базе посылок. Сохраненное значение можно получить обратно
 +
для каждой посылки с помощью запросов <code>list-runs-json</code>,
 +
<code>run-status-json</code> или <code>get-submit</code>.
 +
 +
Клиент может использовать значение этого поля произвольным образом,
 +
но основное назначение поля - хранить некоторый идентификатор,
 +
который свяжет эту посылку с идентификатором пользователя
 +
во внешней системе. Например, это может быть непосредственно
 +
идентификатор пользователя во внешней системе. Такая возможность
 +
может быть полезна, когда внешняя система отправляет решения
 +
на проверку в ejudge, используя один (системный) идентификатор
 +
пользователя.
 +
 +
Для хранения внешнего идентификатора в базе посылок отводится
 +
128 бит (16 байт) во внутреннем представлении. Перевод
 +
внешнего идентификатора пользователя из строкового (внешнего)
 +
представления во внутреннее возможен одним из 4 способов,
 +
который задается в параметре <code>ext_user_kind</code>.
 +
 +
* <code>str</code> - строка длиной до 16 символов включительно. В строке допускаются только символы с кодами 32-126 (десятичное), кроме символов требующих специального кодирования в форматах XML и JSON: <code>'</code>, <code>"</code>, <code>\</code>, <code>&lt;</code>, <code>&gt;</code>, <code>&amp;</code>.
 +
* <code>u64</code> - 64-битное беззнаковое целое число в десятичной записи. Старшие 8 байт значения обнуляются.
 +
* <code>uuid</code> - 128-битное значение в формате UUID
 +
* <code>ulid</code> - 128-битное значение в формате ULID
 +
 +
Примеры (URL-encoded):
 +
 +
ext_user_kind=str&ext_user=ExternalUser
 +
ext_user_kind=u64&ext_user=2737281
 +
ext_user_kind=uuid&ext_user=d9ab67dc-3398-4a62-bcac-fb2becd09cc8
 +
ext_user_kind=ulid&ext_user=01H448PDFDAY1ZMD3BAFSDT9FH

Revision as of 00:05, 20 July 2023

Навигация: Главная страница/Система ejudge/Использование/Внешние идентификаторы пользователей

Поддерживается с версии 3.10.4.

Внешние идентификаторы пользователей - это дополнительная информация, которая хранится для каждой посылки. При отправке решения на тестирование с помощью запросов API:priv:submit-run или API:priv:submit-run-input можно задать параметр ext_user, значение которого будет сохранено в базе посылок. Сохраненное значение можно получить обратно для каждой посылки с помощью запросов list-runs-json, run-status-json или get-submit.

Клиент может использовать значение этого поля произвольным образом, но основное назначение поля - хранить некоторый идентификатор, который свяжет эту посылку с идентификатором пользователя во внешней системе. Например, это может быть непосредственно идентификатор пользователя во внешней системе. Такая возможность может быть полезна, когда внешняя система отправляет решения на проверку в ejudge, используя один (системный) идентификатор пользователя.

Для хранения внешнего идентификатора в базе посылок отводится 128 бит (16 байт) во внутреннем представлении. Перевод внешнего идентификатора пользователя из строкового (внешнего) представления во внутреннее возможен одним из 4 способов, который задается в параметре ext_user_kind.

  • str - строка длиной до 16 символов включительно. В строке допускаются только символы с кодами 32-126 (десятичное), кроме символов требующих специального кодирования в форматах XML и JSON: ', ", \, <, >, &.
  • u64 - 64-битное беззнаковое целое число в десятичной записи. Старшие 8 байт значения обнуляются.
  • uuid - 128-битное значение в формате UUID
  • ulid - 128-битное значение в формате ULID

Примеры (URL-encoded):

ext_user_kind=str&ext_user=ExternalUser
ext_user_kind=u64&ext_user=2737281
ext_user_kind=uuid&ext_user=d9ab67dc-3398-4a62-bcac-fb2becd09cc8
ext_user_kind=ulid&ext_user=01H448PDFDAY1ZMD3BAFSDT9FH