Внешние идентификаторы пользователей
Навигация: Главная страница/Система ejudge/Использование/Внешние идентификаторы пользователей
Поддерживается с версии 3.11.0.
Внешние идентификаторы пользователей - это дополнительная информация,
которая хранится для каждой посылки. При отправке решения на тестирование
с помощью запросов 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-битное значение в формате UUIDulid
- 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