Partager via


Obtenir la liste des clients filtrée par un champ de recherche

S’applique à : Espace partenaires | Espace partenaires géré par 21Vianet | Espace partenaires de Microsoft Cloud for US Government

Obtient une collection de ressources client qui correspondent à un filtre. Vous pouvez éventuellement définir une taille de page. Vous pouvez filtrer par nom d’entreprise, domaine, revendeur indirect ou fournisseur de solutions cloud indirects (CSP).

Prérequis

  • Informations d’identification, comme décrit dans Authentification auprès de l’Espace partenaires. Ce scénario prend en charge l’authentification avec les informations d’identification d’application et d’application+utilisateur autonomes.

  • Filtre construit par l’utilisateur.

C#

Pour obtenir une collection de clients qui correspondent à un filtre, instanciez d’abord un objet SimpleFieldFilter pour créer le filtre. Vous devez passer une chaîne qui contient CustomerSearchField et indiquer le type d’opération de filtre en tant que FieldFilterOperation.StartsWith. Il s’agit de la seule opération de filtre de champ prise en charge par le point de terminaison des clients. Vous devez également fournir la chaîne à filtrer.

Ensuite, instanciez un objet iQuery à passer à la requête en appelant la méthode BuildSimpleQuery et en lui transmettant le filtre. BuildSimplyQuery n’est qu’un des types de requête pris en charge par la classe QueryFactory.

Enfin, pour exécuter le filtre et obtenir le résultat, utilisez d’abord IAggregatePartner.Customers pour obtenir une interface pour les opérations client du partenaire. Appelez ensuite la méthode 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);

Exemple : Application de test de console. Projet : Classe d’exemples sdk de l’Espace partenaires : FilterCustomers.cs

Demande REST

Syntaxe de la requête

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

Paramètres d’URI

Utilisez les paramètres de requête suivants.

Nom Type Requise Description
size int Non Nombre de résultats à afficher en même temps. Ce paramètre est facultatif.
filter filter Oui Filtre à appliquer aux clients. Il doit s’agir d’une chaîne encodée.

Syntaxe de filtre

Vous devez composer le paramètre de filtre sous la forme d’une série de paires de virgules séparées par des virgules, clé-valeur. Chaque clé et valeur doit être placée entre des guillemets et séparée par deux points. La totalité du filtre doit être encodée.

Un exemple non codé ressemble à ceci :

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

Le tableau suivant décrit les paires clé-valeur requises :

Clé Valeur
Champ Champ à filtrer. Les valeurs valides sont disponibles dans CustomerSearchField.
Valeur Valeur sur laquelle filtrer. Le cas de la valeur est ignoré.
Opérateur Opérateur à appliquer. La seule valeur prise en charge pour ce scénario client est « starts_with ».

En-têtes de requête

Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.

Corps de la demande

Aucun.

Exemple de requête

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: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Connection: Keep-Alive

Réponse REST

Si elle réussit, cette méthode retourne une collection de ressources client correspondantes dans le corps de la réponse.

Codes d’erreur et de réussite de la réponse

Chaque réponse est accompagnée d’un code d’état HTTP qui indique la réussite ou l’échec ainsi que des informations de débogage supplémentaires. Utilisez un outil de trace réseau pour lire ce code, le type d’erreur et des paramètres supplémentaires. Pour obtenir la liste complète, consultez Codes d’erreur REST de l’Espace partenaires.

Exemple de réponse

HTTP/1.1 200 OK
Content-Length: 1839
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
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": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
            "companyProfile": {
                "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
                "domain": "contoso190.onmicrosoft.com",
                "companyName": "Contoso190",
                "links": {
                    "self": {
                        "uri": "/customers/aaaabbbb-0000-cccc-1111-dddd2222eeee/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/aaaabbbb-0000-cccc-1111-dddd2222eeee",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Customer"
            }
        }, {
            "id": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
            "companyProfile": {
                "tenantId": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
                "domain": "ContosoCorpCo.onmicrosoft.com",
                "companyName": "Contoso",
                "links": {
                    "self": {
                        "uri": "/customers/bbbbcccc-1111-dddd-2222-eeee3333ffff/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/bbbbcccc-1111-dddd-2222-eeee3333ffff",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Customer"
            }
        }, {
            "id": "ccccdddd-2222-eeee-3333-ffff4444aaaa",
            "companyProfile": {
                "tenantId": "ccccdddd-2222-eeee-3333-ffff4444aaaa",
                "domain": "contosocorpdemo.onmicrosoft.com",
                "companyName": "Contoso",
                "links": {
                    "self": {
                        "uri": "/customers/ccccdddd-2222-eeee-3333-ffff4444aaaa/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/ccccdddd-2222-eeee-3333-ffff4444aaaa",
                    "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"
    }
}