Получение списка клиентов, отфильтрованных по полю поиска
Область применения: Центр партнеров | Центр партнеров, управляемый 21Vianet | Центр партнеров для Microsoft Cloud for US Government
Возвращает коллекцию ресурсов Клиента , которые соответствуют фильтру. При необходимости можно задать размер страницы. Вы можете фильтровать по имени компании, домену, косвенному торговому посреднику или косвенному поставщику облачных решений (CSP).
Необходимые компоненты
Учетные данные, описанные в статье о проверке подлинности в Центре партнеров. Этот сценарий поддерживает проверку подлинности с помощью автономных учетных данных приложения и приложения и пользователя.
Созданный пользователем фильтр.
C#
Чтобы получить коллекцию клиентов, которые соответствуют фильтру, сначала создайте экземпляр объекта SimpleFieldFilter для создания фильтра. Необходимо передать строку, содержащую CustomerSearchField, и указать тип операции фильтра как FieldFilterOperation.StartsWith. Это единственная операция фильтрации полей, поддерживаемая конечной точкой клиентов. Кроме того, необходимо указать строку для фильтрации.
Затем создайте экземпляр объекта iQuery для передачи в запрос, вызвав метод BuildSimpleQuery и передав его фильтру. BuildSimplyQuery — это только один из типов запросов, поддерживаемых классом QueryFactory .
Наконец, чтобы выполнить фильтр и получить результат, сначала используйте IAggregatePartner.Customers для получения интерфейса к операциям клиента партнера. Затем вызовите метод Query или QueryAsync.
IAggregatePartner partnerOperations;
// Specify the partial string to filter by (to match Contoso).
string searchPrefix = "cont"
// Create a simple field filter.
var fieldFilter = new SimpleFieldFilter(
CustomerSearchField.CompanyName.ToString(),
FieldFilterOperation.StartsWith,
searchPrefix);
// Create an iQuery object to pass to the Query method.
var myQuery = QueryFactory.Instance.BuildSimpleQuery(fieldFilter);
// Get the collection of matching customers.
var customers = partnerOperations.Customers.Query(myQuery);
Пример: тестовое приложение консоли. Проект: класс примеров пакета SDK Центра партнеров: FilterCustomers.cs
Запрос REST
Синтаксис запроса
Способ | URI запроса |
---|---|
GET | {baseURL}/v1/customers?size={size}&filter={filter} HTTP/1.1 |
Параметры универсального кода ресурса (URI)
Используйте следующие параметры запроса.
Имя. | Type | Обязательно | Описание |
---|---|---|---|
size | INT | No | Количество результатов, которые будут отображаться за один раз. Это необязательный параметр. |
Фильтр | Фильтр | Да | Фильтр, который применяется для поиска клиентов. Это должна быть закодированная строка. |
Синтаксис фильтра
Необходимо создать параметр фильтра в виде ряда разделенных запятыми пар "ключ-значение". Каждые ключ и значение должны быть по отдельности заключены в кавычки и разделены двоеточием. Весь фильтр должен быть закодирован.
Пример без кода выглядит следующим образом:
?filter{"Field":"CompanyName","Value":"cont","Operator":"starts_with"}
В следующей таблице описаны необходимые пары "ключ-значение".
Ключ | Значение |
---|---|
Поле | Поле для фильтрации. Допустимые значения можно найти в CustomerSearchField. |
Значение | Значение для фильтрации. Случай значения игнорируется. |
Оператор | Оператор для применения. Единственным поддерживаемым значением для этого сценария клиента является "starts_with". |
Заголовки запросов
Дополнительные сведения см. в статье о заголовках REST Центра партнеров.
Текст запроса
Нет.
Пример запроса
GET https://api.partnercenter.microsoft.com/v1/customers?size=0&filter=%7B%22Field%22%3A%22CompanyName%22%2C%22Value%22%3A%22Cont%22%2C%22Operator%22%3A%22starts_with%22%7D HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 5ce66de5-eea9-486f-a11c-c852aa3d1502
MS-CorrelationId: a2a912ee-d595-47e2-97ae-1b0ae1efa13d
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Connection: Keep-Alive
Ответ REST
В случае успешного выполнения этот метод возвращает коллекцию соответствующих ресурсов Customer в тексте ответа.
Коды успешного выполнения и ошибок в ответе
Каждый ответ сопровождается кодом состояния HTTP, обозначающим успешное или неудачное выполнение, и дополнительными сведениями для отладки. Используйте средство трассировки сети, чтобы просматривать этот код, тип ошибки и дополнительные параметры. Полный список ответов есть в статье Коды ошибок REST в Центре партнеров.
Пример ответа
HTTP/1.1 200 OK
Content-Length: 1839
Content-Type: application/json; charset=utf-8
MS-CorrelationId: a2a912ee-d595-47e2-97ae-1b0ae1efa13d
MS-RequestId: dfeda56c-1af5-43fc-a9c0-346b9e85dc96
MS-CV: n0lMNyJtaUC802pO.0
MS-ServerId: 202010223
Date: Fri, 24 Feb 2017 22:08:20 GMT
{
"totalCount": 3,
"items": [{
"id": "c5757d70-06f3-4f23-8367-5a9e55019f94",
"companyProfile": {
"tenantId": "c5757d70-06f3-4f23-8367-5a9e55019f94",
"domain": "contoso190.onmicrosoft.com",
"companyName": "Contoso190",
"links": {
"self": {
"uri": "/customers/c5757d70-06f3-4f23-8367-5a9e55019f94/profiles/company",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "CustomerCompanyProfile"
}
},
"relationshipToPartner": "reseller",
"links": {
"self": {
"uri": "/customers/c5757d70-06f3-4f23-8367-5a9e55019f94",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Customer"
}
}, {
"id": "7b26b357-9ca3-48b8-a58e-4febe2662a5d",
"companyProfile": {
"tenantId": "7b26b357-9ca3-48b8-a58e-4febe2662a5d",
"domain": "ContosoCorpCo.onmicrosoft.com",
"companyName": "Contoso",
"links": {
"self": {
"uri": "/customers/7b26b357-9ca3-48b8-a58e-4febe2662a5d/profiles/company",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "CustomerCompanyProfile"
}
},
"relationshipToPartner": "reseller",
"links": {
"self": {
"uri": "/customers/7b26b357-9ca3-48b8-a58e-4febe2662a5d",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Customer"
}
}, {
"id": "bfbd6ef0-311f-47ec-bbd7-0fcb7846661b",
"companyProfile": {
"tenantId": "bfbd6ef0-311f-47ec-bbd7-0fcb7846661b",
"domain": "contosocorpdemo.onmicrosoft.com",
"companyName": "Contoso",
"links": {
"self": {
"uri": "/customers/bfbd6ef0-311f-47ec-bbd7-0fcb7846661b/profiles/company",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "CustomerCompanyProfile"
}
},
"relationshipToPartner": "reseller",
"links": {
"self": {
"uri": "/customers/bfbd6ef0-311f-47ec-bbd7-0fcb7846661b",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Customer"
}
}
],
"links": {
"self": {
"uri": "/customers?size=0&filter=%7B%22Field%22%3A%22Domain%22%2C%22Value%22%3A%22cont%22%2C%22Operator%22%3A%22starts_with%22%7D",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по