Folks.search
- 1 Описание
- 2 Примеры вызова PartyWS (SOAP)
- 2.1 Пример 1. Поиск пользователя без дополнительных параметров
- 2.2 Пример 2. Поиск с атрибутами (INCLUDE = REQUISITE + ATTRIBUTE)
- 2.3 Пример 3. Поиск только атрибутов пользователя (INCLUDE = ATTRIBUTE)
- 2.4 Пример 4. Ничего не найдено (пустой результат поиска)
- 2.5 Пример 5. Найдено слишком много контрагентов
- 3 Примеры вызова REST (JSON)
Описание
Входные параметры
Имя параметра | Тип | Обязательный? | Описание |
|---|---|---|---|
query | string | да | Критерии поиска |
include/partyInfo[] | Тип информации о контрагенте | нет | Дополнительная информация о контрагенте |
Результирующие данные
Имя параметра | Тип | Описание |
|---|---|---|
folk | WParty | Информация по контрагенту (если явно не заданы параметр |
Особенности использования
Поиск осуществляется по тем же атрибутам контрагента, что и в интерфейсе (работает как простой, так и расширенный поиск). При этом в ответе по каждому контрагенту возвращаются только базовые поля, без множественных атрибутов.
Если по заданным критериям ничего не будет найдено, система вернет пустой ответ.
Дополнительная информация о контрагенте
Если задан параметр //include, то система вернет только те данные контрагента, которые в нем перечислены.
Значения параметра //include/partyInfo | Описание |
|---|---|
REQUISITE | Информация о реквизитах |
ATTRIBUTE | Информация об атрибутах |
Исключительные ситуации
Если по заданным критериям поиска найдено более 2000 контрагентов, то система вернет ошибку (см. пример 3 ниже).
Если длина критерия поиска превышает 1000 символов, то система вернет ошибку.
Примеры вызова PartyWS (SOAP)
Пример 1. Поиск пользователя без дополнительных параметров
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<search>
<query>Иванов</query>
</search>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<searchResponse>
<folk id="1">
<field name="surname">Иванов</field>
<field name="name"/>
<field name="patronymic"/>
<field name="preferredName"/>
<field name="gender">UNKNOWN</field>
<field name="birthDate"/>
<field name="birthPlace"/>
<field name="firstConfDate"/>
<field name="company">ОАО Ромашка</field>
<field name="position">Java Developer</field>
<field name="jobStartDate"/>
<field name="author"/>
<field name="city"/>
<field name="speaker">false</field>
<field name="organizator">false</field>
<field name="vipFlag">UNKNOWN</field>
<field name="visitCount">0</field>
<field name="averageRating">0.00</field>
<field name="language"/>
<field name="actualityDate"/>
</folk>
</searchResponse>
</soapenv:Body>
</soapenv:Envelope>
Пример 2. Поиск с атрибутами (INCLUDE = REQUISITE + ATTRIBUTE)
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<search>
<query>Иванов</query>
<include>
<info>REQUISITE</info>
<info>ATTRIBUTE</info>
</include>
</search>
</soapenv:Body>
</soapenv:Envelope>
Ответ (часть полей реквизитов опущена для краткости):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<searchResponse>
<folk id="1">
<field name="surname">Иванов</field>
<field name="name"/>
<field name="patronymic"/>
<attribute id="1" type="DEVICE">
<field name="actualityDate"/>
<field name="model">iPad</field>
<field name="os">UNKNOWN</field>
<field name="serialNumber">X234F</field>
<field name="type">UNKNOWN</field>
</attribute>
</folk>
</searchResponse>
</soapenv:Body>
</soapenv:Envelope>Пример 3. Поиск только атрибутов пользователя (INCLUDE = ATTRIBUTE)
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<search>
<query>Иванов</query>
<include>
<info>ATTRIBUTE</info>
</include>
</search>
</soapenv:Body>
</soapenv:Envelope>
Ответ (так как в блоке Include не указаны реквизиты, мы их вообще не возвращаем)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<searchResponse>
<folk id="1">
<attribute id="1" type="DEVICE">
<field name="actualityDate"/>
<field name="model">iPad</field>
<field name="os">UNKNOWN</field>
<field name="serialNumber">X234F</field>
<field name="type">UNKNOWN</field>
</attribute>
</folk>
</searchResponse>
</soapenv:Body>
</soapenv:Envelope>Пример 4. Ничего не найдено (пустой результат поиска)
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<search>
<query>Иванов</query>
</search>
</soapenv:Body>
</soapenv:Envelope>
Ответ:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<searchResponse></searchResponse>
</soapenv:Body>
</soapenv:Envelope>Пример 5. Найдено слишком много контрагентов
Запрос:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://olgak.ru/folks/v1">
<soapenv:Header/>
<soapenv:Body>
<search>
<query>Иванов</query>
</search>
</soapenv:Body>
</soapenv:Envelope>Ответ:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>Too many parties found (expected no more than 2000, got 3124)</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Примеры вызова REST (JSON)
Пример 1. Контрагенты найдены
Запрос:
{ "query" : "Иванов" }
Ответ:
{
"folk": [
{
"id": 1,
"field": [
{
"value": "Иванов",
"name": "surname"
},
{
"value": null,
"name": "name"
},
{
"value": null,
"name": "patronymic"
},
{
"value": null,
"name": "preferredName"
},
{
"value": "UNKNOWN",
"name": "gender"
},
{
"value": null,
"name": "birthDate"
},
{
"value": null,
"name": "birthPlace"
},
{
"value": null,
"name": "firstConfDate"
},
{
"value": "ОАО Ромашка",
"name": "company"
},
{
"value": "Java Developer",
"name": "position"
},
{
"value": null,
"name": "jobStartDate"
},
{
"value": null,
"name": "author"
},
{
"value": null,
"name": "city"
},
{
"value": "false",
"name": "speaker"
},
{
"value": "false",
"name": "organizator"
},
{
"value": "UNKNOWN",
"name": "vipFlag"
},
{
"value": "0",
"name": "visitCount"
},
{
"value": "0.00",
"name": "averageRating"
},
{
"value": null,
"name": "language"
},
{
"value": null,
"name": "actualityDate"
}
],
"attribute": [
{
"id": 1,
"field": [
{
"value": "UNKNOWN",
"name": "type"
},
{
"value": "UNKNOWN",
"name": "os"
},
{
"value": "iPad",
"name": "model"
},
{
"value": "X234F",
"name": "serialNumber"
},
{
"value": null,
"name": "author"
},
{
"value": null,
"name": "actualityDate"
}
],
"type": "DEVICE"
}
]
},
{
"id": 2,
"field": [
{
"value": "Иван Иванов",
"name": "surname"
},
{
"value": null,
"name": "name"
},
{
"value": null,
"name": "patronymic"
},
{
"value": null,
"name": "preferredName"
},
{
"value": "UNKNOWN",
"name": "gender"
},
{
"value": null,
"name": "birthDate"
},
{
"value": null,
"name": "birthPlace"
},
{
"value": null,
"name": "firstConfDate"
},
{
"value": "ОАО Ромашка",
"name": "company"
},
{
"value": "Java Developer",
"name": "position"
},
{
"value": null,
"name": "jobStartDate"
},
{
"value": null,
"name": "author"
},
{
"value": null,
"name": "city"
},
{
"value": "false",
"name": "speaker"
},
{
"value": "false",
"name": "organizator"
},
{
"value": "UNKNOWN",
"name": "vipFlag"
},
{
"value": "0",
"name": "visitCount"
},
{
"value": "0.00",
"name": "averageRating"
},
{
"value": null,
"name": "language"
},
{
"value": null,
"name": "actualityDate"
}
]
},
{
"id": 3,
"field": [
{
"value": "Сидоров",
"name": "surname"
},
{
"value": null,
"name": "name"
},
{
"value": null,
"name": "patronymic"
},
{
"value": null,
"name": "preferredName"
},
{
"value": "UNKNOWN",
"name": "gender"
},
{
"value": null,
"name": "birthDate"
},
{
"value": null,
"name": "birthPlace"
},
{
"value": null,
"name": "firstConfDate"
},
{
"value": "ИП Иванов",
"name": "company"
},
{
"value": "Консультант",
"name": "position"
},
{
"value": null,
"name": "jobStartDate"
},
{
"value": null,
"name": "author"
},
{
"value": null,
"name": "city"
},
{
"value": "false",
"name": "speaker"
},
{
"value": "false",
"name": "organizator"
},
{
"value": "UNKNOWN",
"name": "vipFlag"
},
{
"value": "0",
"name": "visitCount"
},
{
"value": "0.00",
"name": "averageRating"
},
{
"value": null,
"name": "language"
},
{
"value": null,
"name": "actualityDate"
}
]
}
]
}