Получение списка клиентов, отфильтрованных по полю поиска

Область применения: Центр партнеров | Центр партнеров, управляемый 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"
    }
}