Partilhar via


Obter uma lista de clientes filtrados por um campo de pesquisa

Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Partner Center for Microsoft Cloud for US Government

Obtém uma coleção de recursos do Cliente que correspondem a um filtro. Opcionalmente, você pode definir um tamanho de página. Você pode filtrar por nome da empresa, domínio, revendedor indireto ou CSP (provedor de soluções de nuvem indireto).

Pré-requisitos

  • Credenciais conforme descrito na autenticação do Partner Center. Este cenário oferece suporte à autenticação com credenciais autônomas de Aplicativo e Aplicativo+Usuário.

  • Um filtro construído pelo utilizador.

C#

Para obter uma coleção de clientes que correspondam a um filtro, primeiro instancie um objeto SimpleFieldFilter para criar o filtro. Você precisará passar uma cadeia de caracteres que contenha o CustomerSearchField e indicar o tipo de operação de filtro como FieldFilterOperation.StartsWith. Essa é a única operação de filtro de campo suportada pelo ponto final do cliente. Você também precisará fornecer a cadeia de caracteres pela qual filtrar.

Em seguida, instancie um objeto iQuery para passar para a consulta chamando o método BuildSimpleQuery e passando-lhe o filtro. BuildSimplyQuery é apenas um dos tipos de consulta suportados pela classe QueryFactory .

Finalmente, para executar o filtro e obter o resultado, primeiro use IAggregatePartner.Customers para obter uma interface para as operações do cliente do parceiro. Em seguida, chame o método Query ou 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);

Exemplo: Aplicativo de teste de console. Projeto: Exemplo de SDK do Partner Center Classe: FilterCustomers.cs

Pedido REST

Sintaxe da solicitação

Método URI do pedido
GET {baseURL}/v1/customers?size={size}&filter={filter} HTTP/1.1

Parâmetros de URI

Use os seguintes parâmetros de consulta.

Nome Type Obrigatório Description
size número inteiro Não O número de resultados a serem exibidos ao mesmo tempo. Este parâmetro é opcional.
filtrar filtrar Sim O filtro a ser aplicado aos clientes. Esta deve ser uma cadeia de caracteres codificada.

Sintaxe do filtro

Você deve compor o parâmetro filter como uma série de pares chave-valor separados por vírgula. Cada chave e valor devem ser cotados individualmente e separados por dois pontos. Todo o filtro deve ser codificado.

Um exemplo não codificado tem esta aparência:

?filter{"Field":"CompanyName","Value":"cont","Operator":"starts_with"}

A tabela a seguir descreve os pares chave-valor necessários:

Key valor
Campo O campo a filtrar. Os valores válidos podem ser encontrados em CustomerSearchField.
valor O valor pelo qual filtrar. O caso do valor é ignorado.
Operador O operador a candidatar. O único valor suportado para este cenário de cliente é "starts_with".

Cabeçalhos do pedido

Para obter mais informações, consulte Cabeçalhos REST do Partner Center.

Corpo do pedido

Nenhum.

Exemplo de solicitação

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

Resposta do REST

Se for bem-sucedido, esse método retornará uma coleção de recursos de Customer correspondentes no corpo da resposta.

Códigos de sucesso e erro de resposta

Cada resposta vem com um código de status HTTP que indica sucesso ou falha e informações adicionais de depuração. Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e parâmetros adicionais. Para obter a lista completa, consulte Códigos de erro REST do Partner Center.

Exemplo de resposta

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"
    }
}