API поиска eBay - findCompletedItems - Как вернуть определенный аспект в выводе

Я использую findCompletedItems для поиска всех предметов, соответствующих определенному набору ключевых слов в определенной категории (мужская обувь), и мне легко указать, что мне нужна обувь только определенного размера, используя aspectFilter:

<aspectFilter>
   <aspectName>US Shoe Size (Men's)</aspectName>
   <aspectValueName>11</aspectValueName>
</aspectFilter>

Но если мне нужны все результаты по ключевым словам, и я хочу, чтобы вывод включал определенное значение аспекта (размер обуви) для каждого результата, даже если они не все одинаковы, как я могу это сделать?

Я потратил 3 часа на взлом с помощью инструмента тестирования API и поиска в Google образцов кода, но я не могу понять, как запросить все данные по умолчанию, ПЛЮС, есть какие-либо дополнительные аспекты, которые я должен включить на выходе, без многократных запросов с aspectFilter для всех разных размеров, что невероятно неэффективно.


person Trae    schedule 26.03.2013    source источник
comment
Я не уверен, что понял, что вы пытаетесь сделать, но я читаю документацию по api eBay на этой странице http://developer.ebay.com/devzone/finding/Concepts/FindingAPIGuide, поэтому я подумал, что вы можете использовать логический оператор AND, включая все размеры в том же фильтре, чтобы получить более полный ответ, а затем используйте все возвращенные данные для отображения, как хотите, на вашем языке программирования.   -  person Fabio    schedule 02.04.2013


Ответы (1)


Вы не можете.

Вы можете просто создать запрос, в котором указан outputSelector из тип AspectHistogram. Однако ответ будет включать только агрегированную информацию об аспектах элементы, выбранные вашим запросом. Вы можете указать, сколько outputSelector вам нужно, в запрос, но аспекты всегда будут агрегироваться, поскольку (по определению) аспекты - это характеристики элементов, общие для элементов в данном домене (прочтите домен = результаты поиска).

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

изменить

Согласно таблице полей вывода для конкретного вызова для SearchResult.item.attribute: поле возвращается условно. См. Полевую документацию для уточнения условий.

Это означает, что такие атрибуты специфичны для найденного элемента: каждый атрибут может присутствовать в элементе, но не в другом. Для их получения не нужно делать ничего особенного. Вы найдете их в элементе <SearchResult>, внутри каждого <item>, каждый в элементе <attribute>.

В ответном XML вы должны найти что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<findItemsAdvancedResponse xmlns="http://www.ebay.com/marketplace/search/v1/services">
  <!-- various things here... -->
  <searchResult count="1">
  <item>
    <attribute>
      <name>Size</name>
      <value>XXL</value>
    </attribute>
    <!-- ... more attribute nodes allowed here ... -->
    <!-- ... more item info here ... -->
  </item>
  <!-- ... more items ... -->
  </searchResult>
</findItemsAdvancedResponse>

Дополнительные примеры можно найти здесь, а также подробнее содержимое результата XML с использованием этой документации.

изменить 2
Похоже, это противоречит документация, в которой говорится:

Вызовы, которые используют одно или несколько полей ItemAttribute:

findCompletedItems, findItemsAdvanced, findItemsByCategory, findItemsByKeywords, findItemsByProduct, findItemsIneBayStores

Кстати, похоже, вам нужно использовать GetSingleItem с < strong> IncludeSelector = ItemSpecifics для элементов, которые вы найдете с помощью findCompletedItems. Я бы попытался взломать API findItemsAdvanced, передав ItemSpecifics либо как IncludeSelector, либо как OutputSelects. Мое последнее предложение - обратиться к Удачи!

person Giacomo Tesio    schedule 03.04.2013
comment
Возможно, ты в чем-то зацепился, но я не уверен. В соответствии с таблицей выходных полей для конкретного вызова для SearchResult.item.attribute: Поле возвращается условно. См. Документацию по полям для уточнения условий. Так что, даже если вы правы, я могу получить размер обуви, заставив поиск возвращать значения SearchResult.item.attribute для каждого элемента, я все еще не уверен как запросить эту информацию в моем запросе. Есть идеи по этому поводу? Спасибо за помощь. - person Trae; 04.04.2013
comment
Я ценю это, но этой информации просто нет в ответе. Например, этот предмет: ebay.com/itm/ Вы увидите, что в разделе" Спецификация товара "четко указан размер обуви для мужчин (США): 14, но ответ по умолчанию XML не имеет такой информации. См. Здесь образец ответа: hdipreview.com/misc/ebay_api_response.jpg - person Trae; 05.04.2013
comment
Имейте в виду, насколько я знаю, это не должно иметь большого значения, но я использую findCompletedItems, а не findItemsAdvanced. - person Trae; 05.04.2013
comment
То же самое для findItemsAdvanced, хотя ... без атрибутов: hdipreview.com/misc/finditemsadvanced.jpg - person Trae; 05.04.2013
comment
Это единственное, что я могу заставить работать: похоже, вам нужно использовать GetSingleItem с IncludeSelector = ItemSpecifics для элементов, которые вы найдете с помощью findCompletedItems - по крайней мере, это какой-то способ получить информацию, которую я искал. Я очень ценю вашу помощь - спасибо. - person Trae; 06.04.2013