Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
admin_api [2021/10/17 20:50] phaust |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | =====Административная API===== | ||
- | |||
- | API состоит из трёх больших секций: Экспорт игры, Импорт игры, Импорт уровней | ||
- | |||
- | =====Экспорт в JSON===== | ||
- | |||
- | Описан тут: | ||
- | |||
- | |||
- | ====Заливка уровней==== | ||
- | Для того, чтобы автоматизировать процесс заливки уровней в движок, существует административная API для заливки. Использовать её можно двумя способами: | ||
- | - Вставить JSON в нужном формате на страницу https://qeng.org/import_tasks.php, указав айди игры, и нажав Импортировать. Эта же ссылка доступна из пункта меню "Импорт заданий" на странице редактирования игры. | ||
- | - Отправить POST запрос на https://qeng.org/import_tasks.php?gid=<ваш айди игры>&json=1, в котором в body будет корректно сформированный JSON объект. Для аутентификации необходимо удержать cookie с запроса на авторизацию, о чём детально написано тут: [[api_embed_engine|Встраивание движка в другие сервисы]] | ||
- | |||
- | ====Генерация JSON через Google doc==== | ||
- | В [[https://docs.google.com/spreadsheets/d/1XUqJl6GxaUVx-sUkQGXPFpsxvr84QsnF2oVi8wfQm2M/edit?usp=drivesdk|этом Гугл доке]] можно сгенерировать JSON уровня автоматически, чтобы потом просто вставить его на страницу заливки. | ||
- | |||
- | ==== JSON игры ==== | ||
- | |||
- | Описан тут: [[admin_api_json|Структура JSON игры]] | ||
- | |||
- | |||
- | ===== Использование API для заливки ===== | ||
- | В зависимости от того, какое действие необходимо произвести (добавить новый уровень / отредактировать существующий), некоторые поля JSON объекта будут отличаться. | ||
- | |||
- | ====Добавление новых уровней ==== | ||
- | Если необходимо добавить уровни в игру, то в поле JSON нужно вставить список из одного или нескольких уровней, разделённых запятыми. При этом уровни должны НЕ иметь поле number внутри task. | ||
- | |||
- | Например, | ||
- | <code JavaScript [enable_line_numbers="false"]> | ||
- | [ | ||
- | { | ||
- | "task":{ | ||
- | "working_name":"Урв1", | ||
- | "task":"Текст задания", | ||
- | }, | ||
- | "codes":[ | ||
- | { | ||
- | "name":"Первый код", | ||
- | "code":["Код1","Кодик1"] | ||
- | } | ||
- | }, | ||
- | { | ||
- | "task":{ | ||
- | "working_name":"Урв2", | ||
- | "task":"Текст задания 2", | ||
- | }, | ||
- | "codes":[ | ||
- | { | ||
- | "name":"Первый код", | ||
- | "code":"Код2, кодик2", | ||
- | } | ||
- | } | ||
- | ] | ||
- | </code> | ||
- | |||
- | ==== Редактирование существующих уровней ==== | ||
- | Если в секции task уровня есть поле number - то уровень с этим номером будет отредактирован, используя предоставленный JSON. | ||
- | |||
- | Для полей в секции task, если они присутствуют в JSON - они будут заменены на новые. Если поля отсутствуют в предоставленном JSON - то они будут оставлены как было. | ||
- | |||
- | Для остальных секций (codes, bonuses, hints), если секция присутствует в JSON - то она полностью заменит существующую. Если отсутствует - то секция остаётся, как была. | ||
- | |||
- | Например, | ||
- | |||
- | <code JavaScript [enable_line_numbers="false"]> | ||
- | [ | ||
- | { | ||
- | "task":{ | ||
- | "number": 4, | ||
- | "working_name":"Уровень 1", | ||
- | "Answer":"Добавляем новый ФО", | ||
- | }, | ||
- | "bonuses":[ | ||
- | { | ||
- | "code":"Бонус1,б1", | ||
- | "delay":15, | ||
- | "duration":60, | ||
- | "time":10, | ||
- | "description":"Другое описание бонуса", | ||
- | "hint":"Текст после решения бонуса" | ||
- | }, | ||
- | } | ||
- | ] | ||
- | </code> | ||
- | |||
- | =====Python библиотека===== | ||
- | Для взаимодействия с API через Python есть библиотека, которую можно найти [[https://github.com/Phaust94/qeng_admin_api|тут]] | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||