Примеры запросов
Изменение региона
Многие наши партнеры-дистрибьюторы показывают разные уровни складских остатков в зависимости от страны пользователя. По умолчанию API использует US и USD в качестве страны и валюты, но эти значения можно переопределить, чтобы получить результаты, более подходящие для вашего региона.
Сравните запрос для Великобритании:
query GBMatch {
supMultiMatch(
country: "GB"
currency: "GBP"
queries: [{ mpn: "AR 32 HZL-TT", limit: 3 }]
) {
parts {
sellers(authorizedOnly: true) {
company {
name
}
offers {
inventoryLevel
}
}
}
}
}
... с запросом для США:
query USMatch {
supMultiMatch(
queries: [{ mpn: "AR 32 HZL-TT", limit: 3 }]
) {
parts {
sellers(authorizedOnly: true) {
company {
name
}
offers {
inventoryLevel
}
}
}
}
}
В этом случае, в этот конкретный день, для отправки в GB было доступно 1 370 компонентов. Однако пользователи в США увидели бы только 300 доступных компонентов.
Многие дистрибьюторы осуществляют поставки в несколько стран или не разделяют складские остатки по странам, поэтому входные значения страны и валюты не используются как жесткий фильтр.
Коды стран соответствуют стандарту ISO 3166 (alpha-2); коды валют соответствуют стандарту ISO 4217.
Точное совпадение mpn с конкретными поставщиками
Используя запрос SupMultiMatch :
query MultiMatch {
supMultiMatch(
queries: [{mpn: "FH12-5S-1SH(55)", limit: 2}]
options: {filters: {distributor_id: ["459", "1106", "2401", "2628", "2454", "3261", "12947"]}}
) {
hits
parts {
mpn
name
sellers {
company {
name
}
offers {
prices {
price
currency
}
}
}
}
}
}
Обратите внимание: это отфильтрует компоненты, продаваемые указанным(и) дистрибьютором(ами). Список дистрибьюторов доступен здесь. Если этот компонент также продают другие дистрибьюторы, они тоже будут перечислены. При необходимости вы всегда можете отфильтровать их на своей стороне при обработке.
Вместо ID компании, например "459", можно указать название компании, например "Digi-Key". Вот пример:
query MultiMatch {
supMultiMatch(
queries: [{mpn: "FH12-5S-1SH(55)", limit: 2}]
options: {filters: {distributor_id: ["Digi-Key"]}}
) {
hits
parts {
mpn
name
sellers {
company {
name
}
offers {
prices {
price
currency
}
}
}
}
}
}
Компоненты от продавцов с информацией о цене
Вот пример запроса, который можно использовать в вашей IDE:
query FindPrices {
supSearch(q: "AEC-Q100", limit: 3) {
results {
part {
mpn
manufacturer {
name
}
sellers(includeBrokers: false) {
company {
name
}
offers {
clickUrl
inventoryLevel
prices{
price
currency
quantity
}
}
}
}
}
}
}
Точное совпадение компонента
Запрос supMultiMatch позволяет вводить несколько MPN для получения данных и ищет точное совпадение для каждого из них.
query MatchParts {
supMultiMatch(queries: [{mpn: "G3VM-101PR"}]) {
hits
reference
parts {
id
slug
mpn
manufacturer {
name
}
}
}
}
Фильтрация компонентов, имеющихся в наличии
При поиске можно указать, что нужно включать только компоненты, которые есть в наличии. Например:
supSearch(q: "LM339", limit: 1, inStockOnly: true) { ... }
Если установить этот фильтр в true, то будут исключены компоненты, у которых no stock at all. Если у компонента есть остатки хотя бы у одного дистрибьютора, он считается имеющимся в наличии и возвращается в составе запроса.
Эта фильтрация вообще не учитывает складские остатки дистрибьюторов — она применяется на уровне компонента.
Вот пример, который можно попробовать. Этот запрос ищет AEC-Q100 с пагинацией start page, равной 5, и параметром inStockOnly, установленным в true:
query in_stock_filter{
supSearch(q: "AEC-Q100", start: 5, inStockOnly: true) {
results {
part {
mpn
manufacturer {
name
}
sellers(includeBrokers: false) {
company {
name
}
}
}
}
}
}
Возвращаются неожиданные MPN
При поиске или сопоставлении иногда находятся дополнительные компоненты, у которых MPN отличаются только неалфавитно-цифровыми символами, например - или ..
Например, рассмотрим запрос supMultiMatch для следующего MPN:
ASV-18.432MHZ-EJ-T, а также ASV-1.8432MHZ-E-J-T (и другие).
Такое поведение связано со способом "токенизации" компонентов для индексации в поисковом движке elastic.
MPN разбиваются на токены с игнорированием специальных символов (например, CV 3-200/SPG может быть преобразован в `CV`, `3200`, `SPG`).
Затем сопоставление выполняется с использованием триграмм (трехбуквенных комбинаций). Поиск должен полностью совпадать с токенизированным MPN, но частичные совпадения зависят от триграмм. Например:
-
Match: "CV 3-20", "CV 320", "00 SPG" - Each part aligns with at least one full token
-
No Match: "CV 3", "CV 3-", "CV 32" - No part of these aligns with any token
Использование подстановочных символов
Иногда поиск по частичному номеру компонента возвращает слишком много результатов, или у вас есть особые требования к сопоставлению номера компонента. В таких случаях можно использовать подстановочные символы для уточнения поиска.
-
Символ
*соответствует любой последовательности символов (включая нулевую длину). -
Символ
?соответствует любому одному символу.
Подстановочные символы можно использовать в любом месте номера компонента. Использовать их для поиска середины номера компонента не требуется — ведущие и завершающие подстановочные символы добавляются автоматически. Например, *74LS25* возвращает те же результаты, что и 74LS25.
Если вы добавляете один или несколько подстановочных символов в термин, никакие другие подстановочные символы автоматически не добавляются. Это можно использовать для префиксного поиска. Например, lv40 находит компоненты, содержащие lv40 в любом месте номера компонента, тогда как lv40* находит только компоненты, начинающиеся с lv40.
Срок поставки компонентов с завода
В API есть два поля, которые можно запрашивать.
-
factoryLeadDaysвSupOfferвозвращает количество дней, необходимое для получения компонентов с завода. -
estimatedFactoryLeadDaysвSupPartвозвращает расчетный срок поставки с завода в днях, полученный на основе предложений доверенных дистрибьюторов.
Вот пример запроса для авторизованных продавцов:
query LeadDaysSearch {
supSearch(q: "IRL3803STRLPBF", limit: 2) {
results {
part {
mpn
estimatedFactoryLeadDays
sellers(authorizedOnly: true) {
offers {
factoryLeadDays
}
}
}
}
}
}
Похожие компоненты
При поиске или сопоставлении компонентов можно указать, что нужно возвращать similarParts. Это компоненты, которые Nexar определил как схожие по характеристикам и функциональности. Вот пример запроса:
query SimilarParts {
supSearch(q: "LM339MX", limit: 1) {
hits
results {
part {
id
mpn
name
manufacturer { name }
similarParts {
id
mpn
manufacturer { name }
}
}
}
}
}