Envoyer et utiliser les requêtes et les réponses de l’API Recherche d’entreprises locales Bing

Avertissement

Le 30 octobre 2020, les API Recherche Bing sont passées de Cognitive Services à Bing Search Services. Cette documentation est fournie à des fins de référence uniquement. Pour accéder à la documentation mise à jour, consultez la documentation de l’API Recherche Bing. Pour obtenir des instructions sur la création de nouvelles ressources Azure pour Recherche Bing, consultez Créer une ressource Recherche Bing à l’aide de Place de marché Azure.

Vous pouvez obtenir des résultats locaux de l’API Recherche d’entreprises locales Bing en envoyant une requête de recherche à son point de terminaison et en incluant si nécessaire l’en-tête Ocp-Apim-Subscription-Key. En parallèle des en-têtes et paramètres disponibles, vous pouvez personnaliser les recherches en spécifiant des limites géographiques pour la zone de recherche ainsi que les catégories des emplacements retournés.

Créer une demande

Pour envoyer une demande à l’API Recherche d’entreprises locales Bing, ajoutez un critère de recherche au paramètre q= avant de l’intégrer au point de terminaison API et d’inclure l’en-tête Ocp-Apim-Subscription-Key. Par exemple :

https://api.cognitive.microsoft.com/bing/localbusinesses/v7.0/search?q=restaurant+in+Bellevue

Voici la syntaxe complète de l’URL de la demande. Pour plus d’informations sur l’envoi de demandes, voir les démarrages rapides de l’API Recherche d’entreprises locales Bing et le contenu de référence sur les en-têtes et les paramètres.

Pour plus d’informations sur les catégories de recherche locale, voir Catégories de recherche pour l’API Recherche d’entreprises locales Bing.

https://api.cognitive.microsoft.com/bing/v7.0/localbusinesses/search[?q][&localCategories][&cc][&mkt][&safesearch][&setlang][&count][&first][&localCircularView][&localMapView]

Utiliser les réponses

Les réponses JSON de l’API Recherche d’entreprises locales Bing contiennent un objet SearchResponse. L’API retourne les résultats de recherche pertinents dans le champ places. Si aucun résultat n’est trouvé, le champ places n’est pas inclus dans la réponse.

Notes

Étant donné que les paramètres et formats d’URL sont susceptibles de changer sans préavis, utilisez toutes les URL telles quelles. Vous ne devez pas créer de dépendances par rapport au format d’URL ou aux paramètres sauf indication contraire.

{
   "_type": "SearchResponse",
   "queryContext": {
      "originalQuery": "restaurant in Bellevue"
   },
   "places": {
      "totalEstimatedMatches": 10,
. . . 

Attributs des résultats de recherche

Les résultats JSON retournés par l’API comportent les attributs suivants :

  • _type
  • address
  • entityPresentationInfo
  • zone géographique
  • id
  • name
  • routeablePoint
  • telephone
  • url

Pour plus d’informations sur les en-têtes, les paramètres, les codes de marché, les objets de réponse, les erreurs, etc., voir la référence API Recherche locale Bing v7.

Notes

Vous, ou un tiers agissant en votre nom, ne pouvez pas utiliser, conserver, stocker, mettre en cache, partager ou distribuer les données issues de l’API Recherche locale à des fins de test, de développement, d’apprentissage, de distribution ou de mise à disposition d’un service ou d’une fonctionnalité ne faisant pas partie de la gamme Microsoft.

Exemple de réponse JSON

La réponse JSON suivante comporte les résultats de recherche spécifiés par la requête ?q=restaurant+in+Bellevue.

Vary: Accept-Encoding
BingAPIs-TraceId: 5376FFEB65294E24BB9F91AD70545826
BingAPIs-SessionId: 06ED7CEC80F746AA892EDAAC97CB0CB4
X-MSEdge-ClientID: 112C391E72C0624204153594738C63DE
X-MSAPI-UserState: aeab
BingAPIs-Market: en-US
X-Search-ResponseInfo: InternalResponseTime=659,MSDatacenter=CO4
X-MSEdge-Ref: Ref A: 5376FFEB65294E24BB9F91AD70545826 Ref B: BY3EDGE0306 Ref C: 2018-10-16T16:26:15Z
apim-request-id: fe54f585-7c54-4bf5-8b92-b9bede2b710a
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Cache-Control: max-age=0, private
Date: Tue, 16 Oct 2018 16:26:15 GMT
P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND"
Content-Length: 978
Content-Type: application/json; charset=utf-8
Expires: Tue, 16 Oct 2018 16:25:15 GMT

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "restaurant Bellevue"
  },
  "places": {
    "totalEstimatedMatches": 50,
    "value": [{
      "_type": "LocalBusiness",
      "id": "https:\/\/cognitivegblppe.azure-api.net\/api\/v7\/#Places.0",
      "name": "Facing East Taiwanese Restaurant",
      "url": "http:\/\/litadesign.wix.com\/facingeastrestaurant",
      "entityPresentationInfo": {
        "entityScenario": "ListItem",
        "entityTypeHints": ["Place", "LocalBusiness", "Restaurant"]
      },
      "geo": {
        "latitude": 47.6199188232422,
        "longitude": -122.202796936035
      },
      "routablePoint": {
        "latitude": 47.6199188232422,
        "longitude": -122.201713562012
      },
      "address": {
        "streetAddress": "1075 Bellevue Way NE Ste B2",
        "addressLocality": "Bellevue",
        "addressRegion": "WA",
        "postalCode": "98004",
        "addressCountry": "US",
        "neighborhood": "Bellevue",
        "text": "1075 Bellevue Way NE Ste B2, Bellevue, WA 98004"
      },
      "telephone": "(425) 688-2986"
    }],
    "searchAction": {
      "location": [{
        "name": "Bellevue, Washington"
      }],
      "query": "restaurant"
    }
  }
}
 

Demandes de limitation

Le service et votre type d’abonnement déterminent le nombre de requêtes par seconde (RPS) que vous pouvez formuler. Assurez-vous que votre application inclut la logique permettant de respecter votre quota. Si la limite RPS est atteinte ou dépassée, la requête échoue et un code d’état HTTP 429 est renvoyé. La réponse inclut l’en-tête Retry-After, qui indique le délai d’attente que vous devez respecter avant d’envoyer une autre requête.

Déni de service (DOS) et limitation de requêtes

Le service établit une distinction entre une attaque par déni de service et une violation du nombre RPS. Si le service suspecte une attaque par déni de service, la requête réussit (le code d’état HTTP est 200 OK). Toutefois, le corps de la réponse est vide.

Étapes suivantes