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

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

[Девблог] Ням-ням, вкусные данные рынка!


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

#1
zima

zima

    Newbie

  • Tech II Pilots
  • 11 сообщений
21
  • EVE Ingame:Mikko Johansen
  • Client:Eng
Ура! Больше новостей от девблога для разработчиков сайтов. В этот раз мы поговорим о рыночных данных.
 
Скажем сразу начистоту: мы НЕ считаем, что это убьет такие веб-сайты как EVE Central и не пытаемся это сделать. Формат нынешних данных не очень удобен для многих приложений. И данные не лучшим образом оптимизированы, если вы пытаетесь получить их в большом объеме о разных вещах и для различных регионов. Веб-сайты, такие как EVE Central и их API будут на связи еще долгое время. И мы надеемся, что EVEMon также не перестанет "выскабливать" кэш в дальнейшем.
 
 
Организация рынка
Когда приходится иметь дело с рыночными данными, одна из важных вещей - это знать какие типы вещей там имеются, чтобы получить информацию о них. Для этого случая у нас есть MarketTypes - ресурс, доступный по следующему маршруту: /market/types/
 
Мы также сделаем доступным ресурс MarketType. MarketTypes это собрание всех возможных ресурсов MarketType. Вы можете получить доступ к личным ресурсам MarketType по следующему пути: /market/types/<typeID:int>/

MarketTypes могут быть выведены с результатом до 1,000 на страницу. C 11,273 типами доступными в это время на рынке, записанными на 12 страницах.

Вы также можете отфильтровать MarketTypes указывая группу, которую можно взять из ресурса MarketGroups, находящихся по следующему маршруту: /market/groups/

MarketTypes принимает параметр группы и ожидает, что это будет ссылка (href) к MarketGroup.

Пример:
GET /market/types/?group=http://public-crest-sisi.testeveonline.com/market/groups/2/ HTTP/1.1
Host: public-crest-sisi.testeveonline.com
Accept: application/vnd.ccp.eve.MarketTypeCollection-v1+json
 
 
Вселенная
Из-за технических решений в дни ранней Евы, данные рынка оказались разделены по регионам. Это значит, что вам необходима региональная информация из CREST, если вы хотите иметь возможность получать все рыночные данные из CREST без наведения справок о регионах в SDE. По этой причине, мы взяли и привели в порядок некоторые ресурсы вселенной и сделали их доступными. Теперь вам могут быть доступны ресурсы Регионов, Региона, Созвездий, Солнечных систем и Планет (Regions, Region, Constellation, SolarSystem, and Planet resources).

Начиная с Регионов находящихся по адресу /regions/ вы можете получить список всех регионов в игре. Из этого следует, что вы можете пройти к индивидуальным ресурсам Региона по адресу - /regions/<regionID:int>/ который даст вам всю информацию о регионе, включая созвездия этого региона. Я думаю, вы можете догадаться к чему это ведет. К тому, что вы можете пройти по ссылкам на каждое созвездие, затем на каждую солнечную систему и в, конце концов, на каждую планету.

Это позволит увидеть полную картину вселенной.

Это один из ключевых элементов, однако, этого вернемся к ресурсу Регион. Каждый Регион предоставляет подробную информацию для региона, такую как имя, X, Y, Z, и созвездиям, также дающим две других ссылки к ресурсам MarketBuyOrders и MarketSellOrders - ордера на покупку и ордера на продажу для текущего региона.
 
 
Сделаем это вместе
Важно помнить, что одна из идей стоящих за CREST, это то, что приложения не должны создавать URIs (унифицированные индикаторы ресурсов) сами. Для получения дополнительной информации, я настоятельно рекомендую вам посмотреть эту презентацию. Итак, запомнив все это, первый шаг - получить URI к тем типам рыночных ордеров, которые вам необходимы. Если вам просто необходимы все типы рынка - вы можете взять их из корня в MarketTypes. Каждый элемент в этом ресурсе будет иметь href для соответствующего типа.

Далее, если вы хотите получить рыночные ордера для каждого региона в игре, вы должны перейти от корня к Регионам, следуя по ссылке для каждого элемента к индивидуальному ресурсу Региона и взять href на MarketBuyOrders.

С href для каждого регионального MarketBuyOrders и href для всех типов, вы можете послать запрос GET к региональным MarketBuyOrders с дополнительным параметром типа, который включает href этого типа.

Делая так, как описано выше, во время указания заголовка Accept означает, что если мы когда-нибудь изменим пути или формат любого из ресурсов, ваше приложение будет продолжать работать, и я не буду против перемещения данных со всей вселенной в /universe/regions/ вместо простого /regions/.

Пример:
GET /market/10000002/orders/buy/?type=https://api-sisi.testeveonline.com/types/683/ HTTP/1.1
Host: https://api-sisi.testeveonline.com
Authorization: Bearer jKVB8oaN9qboU5kQG4sWSoWxzSUaFkQaUyeisy8jWU3apRfYSgYsKpZGNbLh41xXEzuy-NDBX1FohEdEadaukQ2
Accept: application/vnd.ccp.eve.MarketOrderCollection-v1+json
 
 
Получение доступа
Ресурсы для групп рынка и типов рынка вместе со всеми данными вселенной будут представлены через общий CREST(public CREST). На самом деле это все есть на Sisi прямо сейчас: public-crest-sisi.testeveonline.com

Ресурсы ордеров покупок и продаж не будут доступны через public CREST. Для этого есть несколько причин, но на самом деле это хорошо для вас, парни. Поскольку этого ресурса не будет в public CREST, мы все же хотим, чтобы вы получили к ним доступ, и поэтому нам необходимо дать вам индивидуальный/требующий авторизации CREST (Authed CREST). Authed CREST к тому же имеет более высокий предел скорости. Это потребует создания приложений здесь, на сайте разработчиков и выбора ограничений доступных данных. Да, это не означает, что будет, в принципе, невозможно получить эти данные прямо из authed CREST в такие вещи как Excel, Google Docs, отправляя обычные заголовки вместе с потоком личных данных. Однако использование authed CREST дает нам больше уверенности в предоставлении открытых ресурсов, и подготовке к использованию authed CREST, сохраняющего конфиденциальные данные, а также позволит нам более эффективно контролировать/наблюдать за людьми, использующими его.

Работа по улучшению сайта разработчиков, чтобы позволить вам создавать приложения и использовать эти возможности в настоящее время продолжается, и должна быть закончена к выходу Реи. На данный момент, однако, уверен, многие из вас хотя протестировать эти возможности на Sisi; напишите в девблог, прокомментировав эту тему и включив имя вашего приложения и ID клиента. Затем, я обновлю приложение, чтобы получить обновленные токены, задав им определенные границы возможностей. Т.к. все это будет сделано вручную, пожалуйста поймите, если это будет немного медленно :)

Вывод
Вот и все. Я ожидаю сайт, копирующий пользовательский интерфейс рынка в ближайшее время, парни. У вас есть история рынка и информация об рыночных ордерах уже сейчас. Я должен отметить, что идет обсуждение создания ресурсов истории рынка, работающих как рыночные ордера с параметром.
Мы будем держать вас в курсе того, как это продвигается.


- CCP FoxFour
 
Оригинал статьи - 
https://developers.e...tey-market-data

Сообщение отредактировал zima: 26 November 2014 - 22:40

  • 5

#2
Ciaam

Ciaam

    Newbie

  • Tech II Pilots
  • 18 сообщений
2
  • EVE Ingame:Ci'aam Uitra
  • Client:Рус

Однако... :blink:


  • 0

#3
Regolith

Regolith

    Clone Grade Theta

  • Tech III Pilots
  • PipPipPipPip
  • 1106 сообщений
200
  • Client:Eng

Раз уж это тема связана с разработкой, то спрошу. Какой сейчас самый актуальный ресурс разработчиков софта для евы?


  • 0

#4
mumixam

mumixam

    Clone Grade Lambda

  • Tech III Pilots
  • PipPipPipPipPipPip
  • 4016 сообщений
2529
  • EVE Ingame:KC1005
  • Client:Рус

Похоже на сюжет Трона:Наследие - где виртуальность пытается вырваться в реальность... вы там внутри пройдитесь смартами по штаб-квартире ССР на всякий случай ....


  • 0

по независящим от меня причинам вышел из ЕВЫ на некоторое время /конец октября.12/
вернулся в еву в ноябре 21 , но в ECHOES )


#5
glorden

glorden

    Clone Grade Iota

  • Tech III Pilots
  • PipPipPipPipPip
  • 1618 сообщений
397
  • EVE Ingame:glorden
  • Corp:R Industry
  • Client:Eng

я правильно понял, что теперь все данные по всем регионам и по кол-ву ордеров будут общедоступны? то есть не надо сканировать маркет в каждом регионе отдельно как было раньше?


Сообщение отредактировал glorden: 26 November 2014 - 23:23

  • 0

#6
Hlad

Hlad

    победив дракона, сам становишься драконом

  • EVE-RU Team
  • 33589 сообщений
13415
  • EVE Ingame:Mdaemon
  • Corp:Very Industrial Corp
  • Ally:X.I.X
  • Client:Eng

я правильно понял, что теперь все данные по всем регионам и по кол-ву ордеров будут общедоступны? то есть не надо сканировать маркет в каждом регионе отдельно как было раньше?

Нет, неправильно понял. Теперь можно будет мониторить рынок с айфона напрямую, безо всяких там ив-централов.


  • 0

#7
Infine

Infine

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2689 сообщений
770
  • EVE Ingame:Torgeir Hekard
  • Corp:NPC
  • Client:Eng

Нет, неправильно понял. Теперь можно будет мониторить рынок с айфона напрямую, безо всяких там ив-централов.

Нет. Ни то ни то.

 

Сейчас ив-централ и ив-маркетдата наполняются пользователями, сканирующими кеш клиента. А в кеш попадают только просмотренные категории маркета. Поэтому нужно открывать ингейм браузер и давать сайту запустить специальный скрипт, который будет за тебя листать маркет по интересным ему позициям. При этом данные по жите обычно актуальны (+-5 минут), а где-нибудь в солитьюде могут устаревать на неделю или вообще отсутствовать по некоторым позициям.

 

Теперь да, теоретически это всё будет не нужно, и можно будет грузить актуальные (? насколько актуальные?) данные напрямую через крест. НО. Не напрямую с айфона и не в публичном доступе. Нужно будет получить лицензию разработчика или что-то в этом духе. Т.е. теперь ив-централ или маркет-дата смогут при желании их разработчиков, грузить данные не с клиентов, а из креста (ну может кто нативную софтину под огрызок напишет). А Вася Пупкин делать импорт в гугл докс напрямую из крест апи, как это сейчас можно делать с ив-централ или маркетдата апи, не сможет. И всё-равно будет дёргать ив-централ.


  • 0

#8
Hlad

Hlad

    победив дракона, сам становишься драконом

  • EVE-RU Team
  • 33589 сообщений
13415
  • EVE Ingame:Mdaemon
  • Corp:Very Industrial Corp
  • Ally:X.I.X
  • Client:Eng

Теперь да, теоретически это всё будет не нужно, и можно будет грузить актуальные (? насколько актуальные?) данные напрямую через крест. НО. Не напрямую с айфона и не в публичном доступе. Нужно будет получить лицензию разработчика или что-то в этом духе. Т.е. теперь ив-централ или маркет-дата смогут при желании их разработчиков, грузить данные не с клиентов, а из креста (ну может кто нативную софтину под огрызок напишет). А Вася Пупкин делать импорт в гугл докс напрямую из крест апи, как это сейчас можно делать с ив-централ или маркетдата апи, не сможет. И всё-равно будет дёргать ив-централ.

Напишут какой-нибудь Eve-Market.mobile, и будут все смотреть с айфона. 

Правда, реально все будет упираться в ограничение производительности сервера: всем подряд вычитывать весь маркет по Еве все равно никто не даст. 


  • 0

#9
Infine

Infine

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2689 сообщений
770
  • EVE Ingame:Torgeir Hekard
  • Corp:NPC
  • Client:Eng

Напишут какой-нибудь Eve-Market.mobile, и будут все смотреть с айфона. 

Правда, реально все будет упираться в ограничение производительности сервера: всем подряд вычитывать весь маркет по Еве все равно никто не даст. 

Угу. Поэтому я скорее поверю, что Eve-market.mobile будет интерфейсом к какому-нибудь промежуточному кеширующему серверу (по сути - к ивцентралообразной хрени).


  • 0

#10
Denadan

Denadan

    просто жертва зеленых

  • EVE-RU Team
  • 17165 сообщений
5350
  • EVE Ingame:denadanA
  • Ally:RED(offline)
  • Client:Eng

ммм.. афайк апи и так кешируется. вроде с часовым интервалом...


  • 0

Ева - тебя все равно убьют ^_^
---
That's not magic, that was just Pinkie Pie.


#11
Hlad

Hlad

    победив дракона, сам становишься драконом

  • EVE-RU Team
  • 33589 сообщений
13415
  • EVE Ingame:Mdaemon
  • Corp:Very Industrial Corp
  • Ally:X.I.X
  • Client:Eng

Угу. Поэтому я скорее поверю, что Eve-market.mobile будет интерфейсом к какому-нибудь промежуточному кеширующему серверу (по сути - к ивцентралообразной хрени).

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

А все остальные как перли с ив-централа, так и будут переть


  • 1

#12
Infine

Infine

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2689 сообщений
770
  • EVE Ingame:Torgeir Hekard
  • Corp:NPC
  • Client:Eng

ммм.. афайк апи и так кешируется. вроде с часовым интервалом...

Да. Но ты будешь получать доступ по девелоперскому ключу, на котором скорее всего будут установлены всякие лимиты. В т.ч. скорее всего рейт-лимит, чтобы ты случайно сервер не задосил.

 

Если ты один и тот же ключ распространишь вместе со своим маркет-клиентом, а рейт лимит у тебя Per key, то в масштабах креста повторится история с мюторрентом и его utp :D Когда клиенты будут играть в "кто первый - того и тапки".

 

ИМХО, куда надежнее сделать централизованный кеш с централизованным обновлением по расписанию, а уж с него давать пользователям rate limit per device.


  • 0

#13
Werdna

Werdna

    Despicable Heterolingual

  • EVE-RU Team
  • 5204 сообщений
4874
  • EVE Ingame:Lurking one
  • Corp:BLYA
  • Ally:X.I.X
  • Client:Eng

ИМХО, куда надежнее сделать централизованный кеш с централизованным обновлением по расписанию, а уж с него давать пользователям rate limit per device.

 

Примерно так это и реализовано (насколько я понял в силу своей безграмотности)


  • 0

#14
Infine

Infine

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2689 сообщений
770
  • EVE Ingame:Torgeir Hekard
  • Corp:NPC
  • Client:Eng

Примерно так это и реализовано (насколько я понял в силу своей безграмотности)

То паблик крест. Там ордеры не дают.

А тут аутед крест с авторизацией,

 

Хотя ХЗ. Я сам в этом не очень бумбум, так что оставим эту фигню на совести разработчиков сторонних приложений.


Сообщение отредактировал Infine: 27 November 2014 - 10:51

  • 0

#15
хомосапиенс

хомосапиенс

    Clone Grade Kappa

  • Tech III Pilots
  • PipPipPipPipPip
  • 2005 сообщений
1574
  • EVE Ingame:-
  • Corp:-
  • Ally:-
  • Channel:-
  • Client:Eng

То паблик крест. Там ордеры не дают.

А тут аутед крест с авторизацией,

 

Хотя ХЗ. Я сам в этом не очень бумбум, так что оставим эту фигню на совести разработчиков сторонних приложений.

 

Так и есть, в паблик крест отдают только инфу, которая очень редко меняется, вроде типов, групп, системы, команды и прочее.

 

Для нямок нужно зарегистрироваться как разработчик на https://developers.eveonline.com/

 (по сути подтверить email и карточку вроде бы, хотя я без карточки прошел этот этап), зарегистрировать своё ПО, получить API ключ и только потом будет доступ к рынку. Когда тестировал, эти фичи были только на sisi, так что реального рынка ещё не видел.

 

Наверняка будет свой кеш. У CCP всё API кешируется.



А по теме, эта фича, если она действительно будет давать более-менее актуальные данные (хотя бы обновлять раз в 1-2 часа), то это очень круто для тех, кто пытается торговать вне житы. Только там не надо было заморачиваться насчёт обновления данных.

 

Вся печальная картина свежести данных по маркету сейчас: http://eve-marketdat...ats&type=market

Только Forge  имеет 100% обновление за 24 часа, а у половины регионов рынок не обновляется месяцами.


Сообщение отредактировал хомосапиенс: 27 November 2014 - 13:22

  • 0

#16
Gunniball Lecter

Gunniball Lecter

    Clone Grade Zeta

  • Tech III Pilots
  • PipPipPip
  • 431 сообщений
142
  • EVE Ingame:Gunniball Lecter
  • EVE Alt:Tonni Prokshin
  • Corp:RadioActivia
  • Ally:LowSechnaya Sholupen
  • Channel:SawItOnTheRadio
  • Client:Eng

http://null-sec.com/tycoon/

 

вроде очень похоже на пользовательский интерфейс

временной лаг конечно есть, но всё же - очень удобно


  • 3

#17
Denadan

Denadan

    просто жертва зеленых

  • EVE-RU Team
  • 17165 сообщений
5350
  • EVE Ingame:denadanA
  • Ally:RED(offline)
  • Client:Eng

http://null-sec.com/tycoon/

 

вроде очень похоже на пользовательский интерфейс

временной лаг конечно есть, но всё же - очень удобно

где кнопка buy this item?


  • 0

Ева - тебя все равно убьют ^_^
---
That's not magic, that was just Pinkie Pie.


#18
Taupwnz

Taupwnz

    Clone Grade Gamma

  • Tech III Pilots
  • PipPip
  • 114 сообщений
11
  • EVE Ingame:Taupwnz
  • Corp:nocorp
  • Ally:noally
  • Client:Eng


где кнопка buy this item?

Есть мнение, что с CREST скоро появится. API позволяет "писать". Т.е. производить действия вне клиента игры. Конечно, только после авторизации в SSO.

 

Что касается кэширования - у CCP отдельный сервер (один ли?) под кеш: http://jimpurbrick.com/tag/nginx.html

 

 



http://null-sec.com/tycoon/

 

вроде очень похоже на пользовательский интерфейс

временной лаг конечно есть, но всё же - очень удобно

 

Всеравно оно внутри лезет на eve-central  :trololo: https://yadi.sk/i/njzvAFSiczC8H


Сообщение отредактировал Taupwnz: 28 November 2014 - 11:23

  • 0




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

0 members, 0 guests, 0 anonymous users