Перейти к содержимому

Донат
На хостинг
ISK за переводы
до 75kk за 1000зн.
Хроники EVE
Сборник
Новичкам
Полезная информация
Фотография

Контракты в API


  • Авторизуйтесь для ответа в теме
3 ответов в теме

#1
Мейер

Мейер

    Форумный бредогенератор

  • Tech III Pilots
  • PipPipPipPipPip
  • 2731 сообщений
1388
  • EVE Ingame:Dives Armenicus
  • Corp:NPC
  • Ally:Amarr empire
  • Channel:off
  • Client:Eng
Ссылка на оригинал
Автор: CCP Elerhino
| 2011.07.29 14:36:35 |

Привет!

Мы работали над новыми функциями API которые дадут доступ к информации о контрактах. Эти изменения войдут в силу в конце августа но мы создали этот ранний девблог для представления вам наших идей и для получения экспертного мнения.

Проблема

Контракты и рыночные ордера крайне похожи, да и создавали одни и те же головные боли когда мы пытались через API выдавать полезную информацию без больших нагрузок на базу данных ЕвЕ. Мы хотели получить очень простую информацию - действующие и устаревшие Х дней назад контракты. Но оказалось, что такую информацию можно получить с базы данных только угрожая ей топором. Если не вдаватся в подробности - данные просто не оптимизированы для таких запросов.

Решение

Было решено попробовать другой подход и загружать информацию только про активные контракты. То же самое мы когда то сделали для рыночных ордеров, тем самым ограничив ненужную информацию запрашиваемую через API и передаваемую клиенту. Это значительно улучшило запросы к базе данных но нанесло подлый удар клиентам API так как убрало важную информацию.

Одной из проблем является то, что ордера выданные и обрабатываемые в периоде обновления API кэша ордеров никогда не появляются в API. Чтобы восполнить этот пробел мы хотим включить в списке свежие ордера. Мы думаем что недельная история ордеров не только решит проблему, но и пригодится если все что вам нужно - это получать список раз в день или каждые несколько дней.

Другая возникшая проблема была в следущем. Когда старый ордер выполняется он исчезает из списка без какого-либо упоминания о том, что с ним случилось. Чтобы исправить это мы добавим страницу API, или, возможно, OrderID параметр в странице рыночных ордеров, так что вы можете искать исчезшие ордера и выяснить, что произошло с ними.

Контракты

Как и рыночные ордера список контрактов будет содержать выставленные и активные контракты, а также недавно выданные контракты. Мы также введем отдельную страницу или contractID параметр для просмотра отдельных контрактов.

На самом деле будет два набора страниц контрактов, одна для персонажей и еще одна для корпораций. Страница контрактов персонажа будет выдавать все контракты с которыми так или иначе связан персонаж. Корпоративная страница соответственно покажет контракты связанные с корпорацией или с альянсом, естественно эта страница потребует корпоративный ключ доступа. Вот тут мы хотим услышать ваше мнение, в игре корпоративные контракты видны любому члену корпорации, но в API мы хотим запереть эти данные под ключ, который может быть создан только директорами или CEO. Это своего рода мера безопасности в том смысле, что она предотвращает возможность случайного предоставления корпоративной информации членами корпорации третьим сторонам.

Списки контрактов сами по себе не будут содержать информацию о предметах, ставках или напоминаниях. Для предметов и ставок будут отдельные страницы, но вероятнее всего, напоминания будут полностью пропущены. Страница предметов покажет список предметов конкретного контракта, информация будет содержать данные навроде ID товара, количества, и требуется или продается предмет контракта.

Страница ставок будет немножко другой. Она будет показывать список недавних ставок от персонажей и корпораций. При каждом обновлении кэша вы получите список последних ставок (сделанных между обновлениями кэша) на контракты созданные вами или вашей корпорацией. Как упрощенный пример: при первом запросе списка ставок система вам выдаст ставки сделанные после вчерашней даты.

Коротко о графике введения изменений: с рыночными ордерами мы хотим разобратся как можно раньше но мы не имеем конкретной даты для изменений в конце августа. Введение девелоперского билда API в игру требует участие множества людей с разных отделов компании и учитывая период отпусков их очень трудно собрать вместе и скоординировать работу. Похоже вам придется немножко подождать.

CCP Elerhino

Сообщение отредактировал Мейер: 30 July 2011 - 10:42

  • 1

... loading ...


#2
paagrio

paagrio

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1067 сообщений
-28
  • EVE Ingame:NekoGeko
  • Corp:The Scope
  • Client:Eng
Один вопрос. С помощю етого нового АПИ можно будет следить за своими контрактами или же можно будет посмотреть список контрактов по конкретному предмету, как ингейм?
  • 0

#3
Мейер

Мейер

    Форумный бредогенератор

  • Tech III Pilots
  • PipPipPipPipPip
  • 2731 сообщений
1388
  • EVE Ingame:Dives Armenicus
  • Corp:NPC
  • Ally:Amarr empire
  • Channel:off
  • Client:Eng

Один вопрос. С помощю етого нового АПИ можно будет следить за своими контрактами или же можно будет посмотреть список контрактов по конкретному предмету, как ингейм?


За своими (личными или корпоративными)
  • 0

... loading ...


#4
7fox7

7fox7

    Clone Grade Mu

  • Tech III Pilots
  • PipPipPipPipPipPipPip
  • 5767 сообщений
102
  • Client:Eng

Проблема

Контракты и рыночные ордера крайне похожи, да и создавали одни и те же головные боли когда мы пытались через API выдавать полезную информацию без больших нагрузок на базу данных ЕвЕ. Мы хотели получить очень простую информацию - действующие и устаревшие Х дней назад контракты. Но оказалось, что такую информацию можно получить с базы данных только угрожая ей топором. Если не вдаватся в подробности - данные просто не оптимизированы для таких запросов.


Это конечно пять балов, не это даже не пять, это десять. "Данные просто не оптимизированы для таких запросов" - главное что в игре подобную информацию получить можно, и оно как бы оптимизированно для запросов. Интересно они свой ms sql хотя бы на 10% его возможностей используют.
  • 0




0 посетителей читают тему

0 members, 0 guests, 0 anonymous users