Привет капсулёрам!
Эта статья написана для разработчиков стороннего программного обеспечения, связанного с EVE. Если Вы работаете с XML API или CREST - то эта статья для Вас.
Чертежи
Многие из Вас уже давно этого ожидали, и мы пообещали сделать это к середине августа. Что ж, 26-ое число достаточно близко к середине, если вы пользуетесь функцией CCP_ROUND(). :)
Все просто. мы добавили две директории, char/Blueprints и corp/Blueprints, откуда можно получить полный список всех Ваших чертежей. Ну... почти: стоит ограничение на 200,000 штук, так что если кто-нибудь наберет больше... что ж, продайте лишнее. По крайней мере эти 200,000 больше, чем те 30,000, которые отображает клиент.
Для доступа к директориям необходим корпоративный/персональный ключ с доступом к списку активов (asset list). Пример вывода:
<eveapi versi> <currentTime>2014-08-21 10:56:59</currentTime> <result> <rowset name="blueprints" key="itemID" columns="itemID,locationID,typeID,typeName,flagID,quantity,timeEfficiency,materialEfficiency,runs"> <row itemID="1000000012211" locati> <row itemID="1000000029372" locati> <itemID="1000000029375" locati> <row itemID="1000000029377" locati> </rowset> </result> <cachedUntil>2014-08-21 10:57:59</cachedUntil> </eveapi>
В этом примере у нас несколько интересных вещей:
- Первый предмет, 1000000012211, — это использованный однажды оригинал чертежа. Это видно по количеству запусков, равному −1.
- Второй предмет, 1000000029372, — стек из 497 чертежей Аватара-Титана (известно, что только неиспользованные ни разу чертежи можно складывать в стек).
- Третий предмет, 1000000029375, — максимально изученный по материалам чертеж, и число −1 опять же означает, что это оригинал.
- Четвертый предмет, 1000000029377, — это копия чертежа Prophecy Blood Raider Edition на 20,000 запусков.
Надеюсь, что все понятно. :)
CharacterInfo
Здесь все действительно просто. Набор строчек, содержащий историю членства в корпорациях в директории CharacterInfo был обновлен добавлением записи corporationName. Это должно уменьшить количество вызовов для различных простейших вариантов использования.
Ну и куда же без примера:
<eveapi versi> <currentTime>2014-08-21 11:03:44</currentTime> <result> <characterID>90000001</characterID> <characterName>One One</characterName> <race>Gallente</race> <bloodline>Gallente</bloodline> <corporationID>98000001</corporationID> <corporation>One One Corporation</corporation> <corporationDate>2014-04-28 14:23:00</corporationDate> <securityStatus>0</securityStatus> <rowset name="employmentHistory" key="recordID" columns="recordID,corporationID,corporationName,startDate"> <row recordID="7735" corporati> <row recordID="7734" corporati> </rowset> </result> <cachedUntil>2014-08-21 11:04:44</cachedUntil> </eveapi>
Проблема с кэшированием IndustryJobs
Мы сделали два изменения в директории IndustryJobs. Первое касается только директорий corp/IndustryJobs and corp/IndustryJobsHistory. Здесь неправильно возвращаются значения cachedUtil. Информация действительно кэшируется с нашей стороны, но мы часто не возвращаем значение cachedUtil, что не совсем хорошо отражается на приложениях, использующих этот параметр. Сейчас все должно быть в порядке и возвращать правильные значения.
Чиним вероятности в IndustyJobs
Из-за моей оплошности есть некое недопонимание того, что поля вероятности в IndustryJobs возвращают только 0 или 1. Это большей частью из-за того, что я пытался преобразовать значения, возвращаемые базой данных, в байтовые значения вместо предоставления их сразу в готовом виде. Согласен, моя ошибка - починил. Теперь Вам должно отображаться действительное значение вероятности (обычно около 0.5) при запросе хотя бы одной из этих четырех поддиректорий.
Конечно же, пример:
<eveapi versi> <currentTime>2014-08-21 11:09:25</currentTime> <result> <rowset name="jobs" key="jobID" columns="jobID,installerID,installerName,facilityID,solarSystemID,solarSystemName,stationID,activityID,blueprintID,blueprintTypeID,blueprintTypeName,blueprintLocationID,outputLocationID,runs,cost,teamID,licensedRuns,probability,productTypeID,productTypeName,status,timeInSeconds,startDate,endDate,pauseDate,completedDate,completedCharacterID"> <row jobID="136" installerID="90000001" installerName="One One" facilityID="1000000012417" solarSystemID="30000380" solarSystemName="Polaris" stationID="1000000012143" activityID="8" blueprintID="1000000012865" blueprintTypeID="2455" blueprintTypeName="Hobgoblin I Blueprint" blueprintLocationID="1000000012417" outputLocati> </rowset> </result> <cachedUntil>2014-08-21 11:10:25</cachedUntil> </eveapi>
Все эти изменения уже вступили в силу на тестовом сервере Singularity.
Ну и наконец самое вкусное
Мы изменили кэширование CREST. Как его пользователю, Вам не нужно ничего другого — он предоставляет Вам больше возможностей кэширования и контроля. В результате — меньше кэш-промахов, быстрее ответы.
Ну и совсем-совсем последнее
Если Вы являетесь пользователем экспорта изображений, как мы это называем — IEC, я предлагаю Вам испробовать его как только запустим Гиперион. Мне кажется, что Вы найдете новые интересные изображения, возможно — по тематике производства, ISIS, умений и т.д. и т.п..
Выражаю огромную благодарность всем тем, кто помогал нам выискивать ошибки в API и был терпелив, пока мы их исправляли.
CCP FoxFour
@RegnerBA
Перевод © esselesse