Tiendil
#1
[НБ] Магистр
могущество: 13800
разработчик
дварф Халлр
86 уровня
Здесь будем обсуждать наше веб-API.
Отдельные вопросы также можно задавать в разделе форума, в котором находится эта тема.
Linfar
#2
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
89 уровня
Комментарии по тексту:
1.
Устаревшие версии методов будут удаляться из игры по прошествии времени, достаточного для перехода активных проектов на новые версии методов.
- часто пользователи не обновляют приложения. Лучше оставлять больше времени, а в идеале вообще не удалять старый api.
2. Опечатка:
Формат идентификатора: %lt;идентификатор программы>
3. Что такое "идентификатор поля" для ошибок?
4. ИМХО вместо null лучше убирать поле - меньше данных, а проверок в коде столько же (я про
"account": <account_info>|null
)
5. /game/api/info очень большой. Реально очень большой. Одновременно все данные не будут нужны. А некоторые вообще не должны особо меняться (типа прав юзера).
6. А где информация о карте?
7. Можно посмотреть количество новых чужих сообщений?
8. quests выглядит очень громоздко, но надо разобраться подробнее

По поводу 5. В идеале хочется получить только дифф между версией на клиенте и текущей на сервере. Сервер может хранить несколько последних снапшотов например, при превышении лимита - отсылать полные данные. Как минимум - разделить на что-то более-менее статическое и постоянно меняющееся (хиты, опыт, ...).
Tiendil
#3
[НБ] Магистр
могущество: 13800
разработчик
дварф Халлр
86 уровня
- часто пользователи не обновляют приложения. Лучше оставлять больше времени, а в идеале вообще не удалять старый api.
Полностью согласен, но есть же здравый смысл :-)
Методы будут поддерживаться, пока не начнут кардинально расходиться с тем, что реально есть в игре.

3. Что такое “идентификатор поля” для ошибок?
По сути, это имя параметра в post запросе, к которому относится ошибка (например, неверный формат email). В следующем обновлении раскрою этот момент лучше.

4. ИМХО вместо null лучше убирать поле - меньше данных, а проверок в коде столько же
Я считаю, что чем меньше формат должен быть максимально неизменным. Пропадающие поля могут запутать.

5. /game/api/info очень большой. Реально очень большой. Одновременно все данные не будут нужны. А некоторые вообще не должны особо меняться (типа прав юзера).
Согласен, но как-то оптимизировать его формат пока нет времени — работает и хорошо :-)
Делать какую-то сложную логику снапшотов себе дороже может выйти.
Бить же на несколкьо запросов — это кратно увеличивать нагрузку на сервер.

6. А где информация о карте?
Будет в следующем обновлении, её надо ещё немного подправить.

7. Можно посмотреть количество новых чужих сообщений?
Нельзя, будет всегда 0
Linfar
#4
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
89 уровня
Согласен, бить запросы по данным, меняющимся каждый ход, будет только хуже. Как насчет сделать опциональный параметр для фильтрации дневника и журнала? В журнале в среднем появляется 1 сообщение за ход, в дневнике записи появляются редко. Учитывая то, что (по крайней мере, на взгляд) эти данные в ответе занимают где-то 30% - получится неплохая экономия трафика. Клиент в таком случае пошлет игровое время, до которого хочет отфильтровать (или 0, если нужны все доступные), на сервере логика должна получиться совершенно простой.

Кстати, я так понимаю, апи для взаимодействия с миром ещё нет - помощь, выбор в заданиях и тп? Там возможна модификация журнала - нужно это тоже учесть



Сообщение изменено
Tiendil
#5
[НБ] Магистр
могущество: 13800
разработчик
дварф Халлр
86 уровня
Согласен, бить запросы по данным, меняющимся каждый ход, будет только хуже. Как насчет сделать опциональный параметр для фильтрации дневника и журнала? В журнале в среднем появляется 1 сообщение за ход, в дневнике записи появляются редко. Учитывая то, что (по крайней мере, на взгляд) эти данные в ответе занимают где-то 30% - получится неплохая экономия трафика.
Я подумаю над чем-нибудь более комплексным, минимум — это вообще базовые параметры + последняя фраза в журнале.
Tiendil
#6
[НБ] Магистр
могущество: 13800
разработчик
дварф Халлр
86 уровня
Кстати, я так понимаю, апи для взаимодействия с миром ещё нет - помощь, выбор в заданиях и тп?
Будет в следующем обновлении (1-2 недели).
Linfar
#7
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
89 уровня
data.account.is_own возвращает true для гостя - так и планировалось?
Tiendil
#8
[НБ] Магистр
могущество: 13800
разработчик
дварф Халлр
86 уровня
Для анонимного пользователя account вообще не указывается (будет равен null), проверь печеньки.

Или под гостем что-то другое подразумевается?
Linfar
#9
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
89 уровня
Без авторизации иду по http://the-tale.org/game/api/info?api_version=1.0&api_client=aaa-1 и получаю data.account.is_own=true
Linfar
#10
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
89 уровня
Работает только с андроид клиента. Из браузеров всё нормально
Linfar
#11
без гильдии
могущество: 2049
длань судьбы
дварф Arkil
89 уровня
Поправка: в браузерах тоже не работает, если дописать account=1
Tiendil
#12
[НБ] Магистр
могущество: 13800
разработчик
дварф Халлр
86 уровня
поправил
Hellspawn
#13
[ОРДА] Рекрут
могущество: 2470
длань судьбы
мужчина Хеля
99 уровня
Я тут недавно пытался что-то сварганить, просто ради интереса, но с малыми знаниями в программировании я ниасилил :(
Хотел сделать маленькую уведомлялку:
1. Выполнен квест (знач скоро можно сделать выбор)
2. полная энергия
3. скоро может умереть (кол-во жизней + % боя)

Больше не за чем следить (пока).

Да и за этим можно не следить :D
А клиент для Андроид я точно не осилю.

А вообще кто-нибудь взялся что-то делать?



Сообщение изменено
Hellspawn
#14
[ОРДА] Рекрут
могущество: 2470
длань судьбы
мужчина Хеля
99 уровня
Самая простая работа с Json похоже с использованием JQuerry?
Tiendil
#15
[НБ] Магистр
могущество: 13800
разработчик
дварф Халлр
86 уровня
Я тут недавно пытался что-то сварганить, просто ради интереса, но с малыми знаниями в программировании я ниасилил :(
А в чём возникли трудности?

Самая простая работа с Json похоже с использованием JQuerry?
Если для веба, то JavaScript по-умолчанию с JSON работает, у JQuery особых специальных средств для работы именно с JSON вроде не замечено. А вообще, JQuery использовать удобно.