admin_api

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
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|тут]] 
- 
- 
- 
- 
- 
- 
- 
  
  • admin_api.1634503836.txt.gz
  • Последние изменения: 2021/10/17 20:50
  • phaust