Расширенное API
Материал из Энциклобогии
Для написания полноценных клиентов Годвилля, не ограниченных простым получением данных из базового API, существует расширенная версия API. На основе него работают клиенты для платформы iPhoneOS и для Google Android.
| Внимание!
Из-за технических сложностей на данный момент доступ к расширенному API не предоставляется. |
|---|
Содержание |
Как получить доступ и написать свой клиент
Если у вас есть желание и возможность написать клиент под какую-либо мобильную платформу, то нужно сделать следующее:
- Внимательно прочитать эту статью, обращая особое внимание на перечень технологий, и убедиться, что они вам по силам
- Удостовериться, что вы располагаете достаточным количеством времени (как минимум месяц на приличный клиент уйдет) и не бросите начатое через неделю
- Если первые два пункта не пугают, то обратиться к демиургам с письмом по адресу support@godville.net и подробно описать, что, как и чем вы собираетесь писать
- Получить полную спецификацию API и доступ к тестовому серверу, на котором можно экспериментировать и доводить до ума приложение
- После завершения работ получить персональный ключ на игровой сервер, мировое признание, обожание фанатов и путевку в лучшую жизнь (не возбраняется по желанию выпустить расширенную и улучшенную платную версию клиента для получения материальных благ)
Чего клиент делать НЕ должен
- Клиент не должен делать что-то, принципиально недоступное браузерной версии (н-р, сохранять дневник).
- В клиенте не должно быть средств автоматизации игрового процесса (ботов по слежению за гильдиями, плавки кирпичей и т.п.)
- Писать клиент только для себя - не вариант. Клиент должен быть выложен в общедоступном месте (на сайте Годвилля или еще где-нибудь) и быть доступным простому народу (пусть даже в платном варианте).
Используемые технологии
Для работы с ним в мобильном приложении должна быть реализована поддержка следующих компонентов и технологий:
- распаковка получаемых данных посредством 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;
}