
Привет капсулёрам!
Эта статья написана для разработчиков стороннего программного обеспечения, связанного с 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










