Obtener una lista de clientes según el campo de búsqueda

Se aplica a: Centro de partners | Centro de partners operado por 21Vianet | Centro de partners para Microsoft Cloud for US Government

Obtiene una colección de recursos customer que coinciden con un filtro. Opcionalmente, puede establecer un tamaño de página. Puede filtrar por nombre de empresa, dominio, revendedor indirecto o proveedor de soluciones en la nube indirectas (CSP).

Requisitos previos

  • Credenciales tal como se describen en el artículo Autenticación del Centro de partners. Este escenario admite la autenticación con credenciales de aplicación independiente y app+usuario.

  • Filtro construido por el usuario.

C#

Para obtener una colección de clientes que coincidan con un filtro, primero cree una instancia de un objeto SimpleFieldFilter para crear el filtro. Deberá pasar una cadena que contenga CustomerSearchField e indicar el tipo de operación de filtro como FieldFilterOperation.StartsWith. Esa es la única operación de filtro de campo compatible con el punto de conexión de los clientes. También deberá proporcionar la cadena por la que filtrar.

A continuación, cree una instancia de un objeto iQuery para pasar a la consulta mediante una llamada al método BuildSimpleQuery y páselo el filtro. BuildSimplyQuery es solo uno de los tipos de consulta admitidos por la clase QueryFactory.

Por último, para ejecutar el filtro y obtener el resultado, use primero IAggregatePartner.Customers para obtener una interfaz para las operaciones del cliente del asociado. A continuación, llame al método Query o 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);

Ejemplo: Aplicación de prueba de consola. Project: Clase de ejemplos del SDK del Centro de partners: FilterCustomers.cs

Solicitud REST

Sintaxis de la solicitud

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

Parámetros del identificador URI

Use los parámetros de consulta siguientes.

Nombre Type Obligatorio Descripción
size int No El número de resultados que se van a mostrar al mismo tiempo. Este parámetro es opcional.
filter filter Filtro que se aplicará a los clientes. Debe ser una cadena codificada.

Sintaxis de filtro

Debe componer el parámetro de filtro como una serie de pares separados por comas y clave-valor. Cada clave y valor debe estar entrecomillado individualmente y separado por dos puntos. Todo el filtro debe estar codificado.

Un ejemplo sin codificar tiene este aspecto:

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

En la tabla siguiente se describen los pares clave-valor necesarios:

Key Value
Campo El campo que se va a filtrar. Los valores válidos se pueden encontrar en CustomerSearchField.
Value El valor según el cual se aplicará el filtro. El caso del valor se omite.
Operador El operador que se va a aplicar. El único valor admitido para este escenario de cliente es "starts_with".

Encabezados de solicitud

Para obtener más información, consulta Encabezados REST del Centro de partners.

Cuerpo de la solicitud

Ninguno.

Ejemplo de solicitud

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

Respuesta REST

Si se ejecuta correctamente, este método devuelve una colección de recursos del cliente coincidentes en el cuerpo de la respuesta.

Códigos de error y de respuesta correctos

Cada respuesta incluye un código de estado HTTP que indica si la operación se ha realizado correctamente o con errores y proporciona información de depuración adicional. Use una herramienta de seguimiento de red para leer este código, el tipo de error y los parámetros adicionales. Para obtener la lista completa, consulta Códigos de error de REST del Centro de partners.

Ejemplo de respuesta

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