Difference between revisions of "API:priv:get-submit"
From EjudgeWiki
(...) |
(...) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
помощью API key или EJSID/session_id). | помощью API key или EJSID/session_id). | ||
− | Method: GET | + | Method: <code>GET</code> |
Параметры: | Параметры: | ||
− | * submit_id (int64) - ID посылки | + | * <code>contest_id</code> (int) - идентификатор турнира |
+ | * <code>action</code> (string) - строка get-submit | ||
+ | * <code>submit_id</code> (int64) - ID посылки | ||
− | Response content type: application/json | + | Response content type: <tt>application/json</tt> |
В случае ошибки возвращается JSON: | В случае ошибки возвращается JSON: | ||
Line 18: | Line 20: | ||
"ok": false, | "ok": false, | ||
"server_time": UNIX-TIMESTAMP, | "server_time": UNIX-TIMESTAMP, | ||
− | "action": "submit | + | "action": "get-submit", |
"error": { | "error": { | ||
"num": ERROR-CODE, | "num": ERROR-CODE, | ||
Line 31: | Line 33: | ||
"ok": true, | "ok": true, | ||
"result": { | "result": { | ||
− | " | + | "submit_id": ID, |
"user_id": USER-ID, | "user_id": USER-ID, | ||
"prob_id": PROB-ID, | "prob_id": PROB-ID, | ||
"lang_id": LANG-ID, | "lang_id": LANG-ID, | ||
+ | "ext_user_kind": EXT-USER-KIND, | ||
+ | "ext_user": EXT-USER, | ||
+ | "notify_driver": NOTIFY-DRIVER, | ||
+ | "notify_kind" : NOTIFY-KIND, | ||
+ | "notify_queue" : NOTIFY-QUEUE, | ||
"status": STATUS, | "status": STATUS, | ||
"status_str": STATUS-SHORT-STR, | "status_str": STATUS-SHORT-STR, | ||
"compiler_output": COMPILER-MESSAGES, | "compiler_output": COMPILER-MESSAGES, | ||
+ | "test_checker_output": TEST-CHECKER-MESSAGES, | ||
"time": CPU-TIME, | "time": CPU-TIME, | ||
"real_time": REAL-TIME, | "real_time": REAL-TIME, | ||
Line 49: | Line 57: | ||
} | } | ||
} | } | ||
+ | |||
+ | Поля <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]]), если он был установлен при отправке посылки. | ||
+ | |||
+ | Пример кода на python: | ||
+ | |||
+ | import requests | ||
+ | import os | ||
+ | import urllib.parse | ||
+ | |||
+ | URL = 'http://HOST/cgi-bin/master' | ||
+ | TOKEN = 'TOKEN' | ||
+ | CONTEST_ID = 1 | ||
+ | SUBMIT_ID = 50 | ||
+ | |||
+ | headers = { | ||
+ | "Authorization": "Bearer AQAA" + TOKEN | ||
+ | } | ||
+ | |||
+ | data = { | ||
+ | "contest_id" : CONTEST_ID, | ||
+ | "json" : 1, | ||
+ | "action" : "get-submit", | ||
+ | "submit_id" : SUBMIT_ID, | ||
+ | } | ||
+ | response = requests.get(URL+"?"+urllib.parse.urlencode(data), headers=headers) | ||
+ | print(response.json()) |
Latest revision as of 17:36, 27 January 2024
Навигация: Главная страница/Система ejudge/Использование/API/get-submit (привилегированный)
Запрос возвращает информацию о посылке, отправленной с помощью submit-run-input
Уровень доступа: администратор в контесте (аутентификация с помощью API key или EJSID/session_id).
Method: GET
Параметры:
contest_id
(int) - идентификатор турнираaction
(string) - строка get-submitsubmit_id
(int64) - ID посылки
Response content type: application/json
В случае ошибки возвращается JSON:
{ "ok": false, "server_time": UNIX-TIMESTAMP, "action": "get-submit", "error": { "num": ERROR-CODE, "symbol": ERROR-SYMBOL, "message": ERROR-MESSAGE } }
В случае успеха возвращается JSON:
{ "ok": true, "result": { "submit_id": ID, "user_id": USER-ID, "prob_id": PROB-ID, "lang_id": LANG-ID, "ext_user_kind": EXT-USER-KIND, "ext_user": EXT-USER, "notify_driver": NOTIFY-DRIVER, "notify_kind" : NOTIFY-KIND, "notify_queue" : NOTIFY-QUEUE, "status": STATUS, "status_str": STATUS-SHORT-STR, "compiler_output": COMPILER-MESSAGES, "test_checker_output": TEST-CHECKER-MESSAGES, "time": CPU-TIME, "real_time": REAL-TIME, "exit_code": PROCESS-EXIT-CODE, "term_signal": TERMINATION-SIGNAL, "max_memory_used": VIRT-MEM-USE, "max_rss": MEMORY-USE, "input": INPUT, "output": OUTPUT-TEXT, "error": ERROR-TEXT } }
Поля ext_user_kind
, ext_user
содержат внешний идентификатор пользователя (3.11.0), если он был установлен при отправке посылки.
Поля notify_driver
, notify_kind
, notify_queue
содержат идентификатор очереди сообщений (3.11.0), если он был установлен при отправке посылки.
Пример кода на python:
import requests import os import urllib.parse URL = 'http://HOST/cgi-bin/master' TOKEN = 'TOKEN' CONTEST_ID = 1 SUBMIT_ID = 50 headers = { "Authorization": "Bearer AQAA" + TOKEN } data = { "contest_id" : CONTEST_ID, "json" : 1, "action" : "get-submit", "submit_id" : SUBMIT_ID, } response = requests.get(URL+"?"+urllib.parse.urlencode(data), headers=headers) print(response.json())