API: различия между версиями

Материал из Энциклобогии
Перейти к навигации Перейти к поиску
Нет описания правки
(Составил список json ключей, до каких смог добраться)
Строка 7: Строка 7:
  godville.net/gods/api/<username>.xml  
  godville.net/gods/api/<username>.xml  


По умолчанию в нем доступен только базовый набор сведений о герое, примерно совпадающий с содержимым персональной страницы. Если за героем хочется наблюдать в реальном времени, то необходимо включить в профиле игры галочку "Оперативные данные в API", добавляющую десять с лишним часто меняющихся полей наподобие инвентаря. При этом нужно учитывать, что любой желающий тоже сможет подглядывать за личной жизнью вашего героя.
По умолчанию в нем доступен только базовый набор сведений о герое, примерно совпадающий с содержимым персональной страницы. Если за героем хочется наблюдать в реальном времени, то необходимо включить в профиле игры галочку "Оперативные данные в API"<ref>На 22.12.2016 сервер возвращает ошибку 500, если галочка не стоит.</ref>, добавляющую десять с лишним часто меняющихся полей наподобие инвентаря. При этом нужно учитывать, что любой желающий тоже сможет подглядывать за личной жизнью вашего героя.


Смысл большинства полей очевиден из их названия. Самое сложное:
Смысл большинства полей очевиден из их названия. Самое сложное:
Строка 18: Строка 18:


Данные обновляются раз в минуту, поэтому дергать сервер чаще смысла нет. При слишком частых запросах (существует ограничение “не больше 30 запросов за 10 минут в связке (бог+ip)”) данные героя перестают возвращаться, выводя соответствующее уведомление.
Данные обновляются раз в минуту, поэтому дергать сервер чаще смысла нет. При слишком частых запросах (существует ограничение “не больше 30 запросов за 10 минут в связке (бог+ip)”) данные героя перестают возвращаться, выводя соответствующее уведомление.
{| class="wikitable collapsible collapsed"
|-
!colspan="3" align="left" |Список ключей JSON<ref>Список неофициальный, а значит может быть неполным или ошибочным. Уточнения приветствуются.</ref>
|-
!Ключ || Тип || Описание
|-
|arena_fight || Bool || Находится ли герой на арене (моря и подземелья возвращают False)
|-
|ark_completed_at || Строка || Время окончания ковчега (null если ещё не окончен)
|-
|alignment || Строка || Характер героя
|-
|aura || Строка || Название ауры на герое, без времени(Если ауры нет, то ключа тоже нет)
|-
|bricks_cnt || Число || количество кирпичей (не в процентах, показывается даже если храм окончен или ещё не начат)
|-
|clan || Строка || Название гильдии героя, пустая строка если её нет
|-
|clan_position || Строка || Звание в гильдии (если гильдии нет, то "фанат")
|-
|diary_last || Строка || Последняя запись в дневнике
|-
|distance || Число || Расстояние до столицы (при нахождении в любом городе 0)
|-
|exp_progress || Число || Количество опыта
|-
|godpower || Число || Количество праны (для пенсионеров 0-200)
|-
|gold_approx || Строка || Приблизительное количество золота
|-
|gender || Строка || Пол героя
|-
|godname || Строка || Имя бога
|-
|health || Число || Здоровье героя
|-
|inventory_max_num || Число || Максимальный размер инвентаря 
|-
|inventory_num || Число || Количество вещей в инвентаре
|-
|inventory || Объект || Объект, содержащий список вещей в инвентаре (подробности ниже)
|-
|level || Число || Уровень героя
|-
|max_health || Число || Максимальный запас здоровья
|-
|motto || Строка || Девиз (может быть пустой строкой)
|-
|name || Строка || Имя героя
|-
|pet || Объект || Объект, содержащий описание питомца (подробности ниже)
|-
|quest_progress || Число || % выполнения квеста
|-
|quest || Строка || Квест
|-
|savings_completed_at || Строка || Дата окончания сбора пенсии (только у пенсионеров)
|-
|temple_completed_at || Строка || Дата окончания храма (только у храмовладельцев)
|-
|town_name || Строка || Город, в котором герой (пустая строка, если в поле)
|-
|wood_cnt || Число || Количество поленьев (пока нет храма, ключ отсутствует)
|-
|}
{| class="wikitable collapsible collapsed"
|-
!colspan="3" align="left" |Состояние питомца<ref>На данный момент нет информации о том как выглядит информация о контуженном или безуровневом питомце.</ref>
|-
!Ключ || Тип || Описание
|-
|pet_class || Строка || Вид, к которому относится животное
|-
|pet_level || Число || Уровень животного
|-
|pet_name || Строка || Имя животного (Например, 'Пуха «Беспечный»')
|-
|}
{| class="wikitable collapsible collapsed"
|-
!colspan="3" align="left" |Описание предметов<ref>Нужно проверить как выглядят нежирные активашки (рыбацкие).</ref>
|-
!Ключ || Тип || Описание
|-
|cnt || Число || Количество экземпляров данного предмета
|-
|pos || Число || Позиция в инвентаре
|-
|price || Число || "Цена" (0 для простых трофеев, 101 для жирных)
|-
|type || Строка || Тип (есть только у лечилок, всегда 'heal_potion')
|-
|activate_by_user || Bool || Активируемый (Есть только у ативируемых)
|-
|needs_godpower || Число || Стоимость активации<ref>Нужно проверить, покажет ли 25 в день, когда прогноз на дешевые активации.</ref> (Есть только у ативируемых)
|-
|description || Строка || Описание эффекта предмета (Есть только у ативируемых)
|-
|}


Кроме того, существует [[расширенное API]], позволяющее писать полноценные клиенты с возможностью влияния на героя.
Кроме того, существует [[расширенное API]], позволяющее писать полноценные клиенты с возможностью влияния на героя.
===Примечания===
<references />


[[Категория:Техническое]]
[[Категория:Техническое]]

Версия от 17:20, 22 декабря 2016

Сервер Годвилля предоставляет программный доступ к большинству данных героя, который можно использовать для написания сторонних программ.

API доступен в двух форматах (JSON и XML):

godville.net/gods/api/<username>.json 

или (менее предпочтительно)

godville.net/gods/api/<username>.xml 

По умолчанию в нем доступен только базовый набор сведений о герое, примерно совпадающий с содержимым персональной страницы. Если за героем хочется наблюдать в реальном времени, то необходимо включить в профиле игры галочку "Оперативные данные в API"[1], добавляющую десять с лишним часто меняющихся полей наподобие инвентаря. При этом нужно учитывать, что любой желающий тоже сможет подглядывать за личной жизнью вашего героя.

Смысл большинства полей очевиден из их названия. Самое сложное:

  • expired - показатель неактуальности данных. Для того, чтобы данные подавались в реальном времени, требуется периодическое (раз в час) посещение страницы героя, любая активность пользователя на ней или посещение героя одним из полноценных клиентов. Если expired = true, то герой не посещался слишком давно и остальные данные уже не актуальны (знаем, что неудобно, но пока только так).
  • diary_last - последняя запись из дневника героя.
  • arena_fight - показатель нахождения на арене или в полевом пвп (можно использовать для индикации необходимости присмотра пользователем).

Данные обновляются раз в минуту, поэтому дергать сервер чаще смысла нет. При слишком частых запросах (существует ограничение “не больше 30 запросов за 10 минут в связке (бог+ip)”) данные героя перестают возвращаться, выводя соответствующее уведомление.

Кроме того, существует расширенное API, позволяющее писать полноценные клиенты с возможностью влияния на героя.

Примечания

  1. На 22.12.2016 сервер возвращает ошибку 500, если галочка не стоит.
  2. Список неофициальный, а значит может быть неполным или ошибочным. Уточнения приветствуются.
  3. На данный момент нет информации о том как выглядит информация о контуженном или безуровневом питомце.
  4. Нужно проверить как выглядят нежирные активашки (рыбацкие).
  5. Нужно проверить, покажет ли 25 в день, когда прогноз на дешевые активации.