Расширенное API

Материал из Энциклобогии
Перейти к: навигация, поиск

Для написания полноценных клиентов Годвилля, не ограниченных простым получением данных из базового API, существует расширенная версия API. На основе него работают клиенты для платформы iPhoneOS и для Google Android.

Внимание!

Из-за технических сложностей на данный момент доступ к расширенному API не предоставляется.


Содержание

Как получить доступ и написать свой клиент

Если у вас есть желание и возможность написать клиент под какую-либо мобильную платформу, то нужно сделать следующее:

  1. Внимательно прочитать эту статью, обращая особое внимание на перечень технологий, и убедиться, что они вам по силам
  2. Удостовериться, что вы располагаете достаточным количеством времени (как минимум месяц на приличный клиент уйдет) и не бросите начатое через неделю
  3. Если первые два пункта не пугают, то обратиться к демиургам с письмом по адресу support@godville.net и подробно описать, что, как и чем вы собираетесь писать
  4. Получить полную спецификацию API и доступ к тестовому серверу, на котором можно экспериментировать и доводить до ума приложение
  5. После завершения работ получить персональный ключ на игровой сервер, мировое признание, обожание фанатов и путевку в лучшую жизнь (не возбраняется по желанию выпустить расширенную и улучшенную платную версию клиента для получения материальных благ)

Чего клиент делать НЕ должен

  1. Клиент не должен делать что-то, принципиально недоступное браузерной версии (н-р, сохранять дневник).
  2. В клиенте не должно быть средств автоматизации игрового процесса (ботов по слежению за гильдиями, плавки кирпичей и т.п.)
  3. Писать клиент только для себя - не вариант. Клиент должен быть выложен в общедоступном месте (на сайте Годвилля или еще где-нибудь) и быть доступным простому народу (пусть даже в платном варианте).

Используемые технологии

Для работы с ним в мобильном приложении должна быть реализована поддержка следующих компонентов и технологий:

  • распаковка получаемых данных посредством gzip (inflate)
  • push-интерфейс общения с сервером (прямое socket-соедиение или потоки (streams))
  • получение данных с помощью http-запросов
  • шифрование данных с помощью RSA для аутентификации клиента
  • фоновое обновление пользовательского интерфейса
  • JSON в качестве основного формата данных
  • UTF-8 в качестве кодировки для всех передаваемых данных

Пример передаваемых данных

Вот так выглядит json-объект для обновления вестей с полей:

{
"news_from_field" = {
msg = "Тырит несвежие плюшки с прилавка...";
time = "2010-01-10T17:09:43+03:00"; };
status = success;
}

В случае обновления инвентаря json-объект будет выглядеть так:

{
ctime = "2010-01-10T17:10:01+03:00";
hero = { "inventory_num" = 9; };
inventory = { "февральского жука" = { cnt = 1; pos = 1; price = 0; }; };
status = success;
}

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
пойти вон
Инструменты