Difference between revisions of "API:priv:submit-run"
From EjudgeWiki
(...) |
(...) |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 6: | Line 6: | ||
помощью API key или EJSID/session_id). | помощью API key или EJSID/session_id). | ||
| − | Method: POST | + | Method: <code>POST</code> |
| − | Content-type: multipart/form-data | + | Content-type: <code>multipart/form-data</code> |
Параметры: | Параметры: | ||
| + | * <code>contest_id</code> (int) - идентификатор турнира | ||
* <code>action</code> (string) — строка <code>submit-run</code>. | * <code>action</code> (string) — строка <code>submit-run</code>. | ||
* <code>sender_user_login</code> (string, optional) — логин пользователя, от имени которого выполняется посылка. | * <code>sender_user_login</code> (string, optional) — логин пользователя, от имени которого выполняется посылка. | ||
| Line 21: | Line 22: | ||
* <code>variant</code> (int, optional) — вариант задачи. | * <code>variant</code> (int, optional) — вариант задачи. | ||
* <code>language_name</code> (string, **) — короткое имя (short_name) языка программирования. | * <code>language_name</code> (string, **) — короткое имя (short_name) языка программирования. | ||
| − | * <code>lang_id</code> (int, **) — либо id (int) языка программирования. | + | * <code>lang_id</code> (int, **) — либо id (int) языка программирования либо короткое имя (string) языка программирования. |
* <code>eoln_type</code> (int, optional) — тип преобразования концов строк. | * <code>eoln_type</code> (int, optional) — тип преобразования концов строк. | ||
* <code>is_visible</code> (int, optional) — если значение > 0, посылка не будет "невидимой". | * <code>is_visible</code> (int, optional) — если значение > 0, посылка не будет "невидимой". | ||
* <code>file</code> (string, ***) — исходный код программы. | * <code>file</code> (string, ***) — исходный код программы. | ||
* <code>text_form</code> (string, ***) — исходный код программы (альтернатива для file). | * <code>text_form</code> (string, ***) — исходный код программы (альтернатива для file). | ||
| − | * <code>not_ok_is_cf</code> (int, optional) — если значение положительно, любой не-OK вердикт по этой посылке будет рассматриваться как Check Failed. | + | * <code>not_ok_is_cf</code> (int, optional) — если значение положительно, любой не-OK вердикт по этой посылке будет рассматриваться как Check Failed ([[Изменения в версии 3.10.1|3.10.1]]). |
* <code>rejudge_flag</code> (int, optional) — если значение положительно, | * <code>rejudge_flag</code> (int, optional) — если значение положительно, | ||
| − | посылка будет тестироваться с пониженным приоритетом, как при перетестировании. | + | посылка будет тестироваться с пониженным приоритетом, как при перетестировании ([[Изменения в версии 3.10.1|3.10.1]]). |
| + | * <code>ext_user_kind</code>, <code>ext_user</code> — [[Внешние идентификаторы пользователей|внешний идентификатор пользователя]] ([[Изменения в версии 3.11.0|3.11.0]]). | ||
| + | * <code>notify_driver</code>, <code>notify_kind</code>, <code>notify_queue</code> — [[Нотификации во внешние системы|идентификатор очереди сообщений]] ([[Изменения в версии 3.11.0|3.11.0]]). | ||
Из параметров <code>problem_uuid</code>, <code>problem_name</code>, <code>problem</code> должен быть указан только один. | Из параметров <code>problem_uuid</code>, <code>problem_name</code>, <code>problem</code> должен быть указан только один. | ||
| Line 38: | Line 41: | ||
указан только один. | указан только один. | ||
| − | Response content type: application/json | + | Response content type: <code>application/json</code> |
В случае ошибки возвращается JSON: | В случае ошибки возвращается JSON: | ||
| Line 45: | Line 48: | ||
"ok": false, | "ok": false, | ||
"server_time": UNIX-TIMESTAMP, | "server_time": UNIX-TIMESTAMP, | ||
| − | "action": "submit-run | + | "action": "submit-run", |
"error": { | "error": { | ||
"num": ERROR-CODE, | "num": ERROR-CODE, | ||
Latest revision as of 17:36, 27 January 2024
Навигация: Главная страница/Система ejudge/Использование/API/submit-run (привилегированный)
Запрос отправляет на проверку файл с исходным кодом.
Уровень доступа: администратор в контесте (аутентификация с помощью API key или EJSID/session_id).
Method: POST
Content-type: multipart/form-data
Параметры:
contest_id(int) - идентификатор турнираaction(string) — строкаsubmit-run.sender_user_login(string, optional) — логин пользователя, от имени которого выполняется посылка.sender_user_id(int, optional) — user id пользователя (если не задан sender_user_login).sender_ip(string, optional) — IP-адрес отправителя.sender_ssl_flag(int, optional) — 1, если протокол HTTPS; 0, если HTTP.problem_uuid(uuid, *) — UUID задачи, если присутствует, то поиск задачи выполняется по UUID.problem_name(string, *) — либо short_name задачи, либо internal_name задачи.problem(int, *) — id задачи.variant(int, optional) — вариант задачи.language_name(string, **) — короткое имя (short_name) языка программирования.lang_id(int, **) — либо id (int) языка программирования либо короткое имя (string) языка программирования.eoln_type(int, optional) — тип преобразования концов строк.is_visible(int, optional) — если значение > 0, посылка не будет "невидимой".file(string, ***) — исходный код программы.text_form(string, ***) — исходный код программы (альтернатива для file).not_ok_is_cf(int, optional) — если значение положительно, любой не-OK вердикт по этой посылке будет рассматриваться как Check Failed (3.10.1).rejudge_flag(int, optional) — если значение положительно,
посылка будет тестироваться с пониженным приоритетом, как при перетестировании (3.10.1).
ext_user_kind,ext_user— внешний идентификатор пользователя (3.11.0).notify_driver,notify_kind,notify_queue— идентификатор очереди сообщений (3.11.0).
Из параметров problem_uuid, problem_name, problem должен быть указан только один.
Из параметров language_name, lang_id должен быть
указан только один.
Из параметров file, text_form должет быть
указан только один.
Response content type: application/json
В случае ошибки возвращается JSON:
{
"ok": false,
"server_time": UNIX-TIMESTAMP,
"action": "submit-run",
"error": {
"num": ERROR-CODE,
"symbol": ERROR-SYMBOL,
"message": ERROR-MESSAGE
}
}
В случае успеха возвращается JSON:
{
"ok": true,
"result": {
"run_id": ID,
"run_uuid": UUID
}
}