Snabbstart: Sök efter bilder med rest-API:et för bildsökning i Bing och Node.js
Varning
Den 30 oktober 2020 flyttade Bing-sökning API:er från Azure AI-tjänster till Bing-sökning Services. Den här dokumentationen tillhandahålls endast som referens. Uppdaterad dokumentation finns i dokumentationen för API:et för Bing-sökning. Anvisningar om hur du skapar nya Azure-resurser för Bing-sökning finns i Skapa en Bing-sökning resurs via Azure Marketplace.
Använd den här snabbstarten om du vill lära dig hur du skickar sökbegäranden till API:et för bildsökning i Bing. Det här JavaScript-programmet skickar en sökfråga till API:et och visar URL:en till den första bilden i resultatet. Även om det här programmet är skrivet i JavaScript är API:et en RESTful-webbtjänst som är kompatibel med de flesta programmeringsspråk.
Förutsättningar
Den senaste versionen av Node.js.
Mer information finns i Prissättning för Azure AI-tjänster – Bing-sökning API.
Skapa och initiera appen
Skapa en ny JavaScript-fil i valfri IDE eller redigerare och ange kraven för strikthet och HTTPS.
'use strict'; let https = require('https');
Skapa variabler för API-slutpunkten, sökväg för bild-API, din prenumerationsnyckel och sökord. För
host
kan du använda den globala slutpunkten i följande kod eller använda den anpassade underdomänslutpunkten som visas i Azure Portal för resursen.let subscriptionKey = 'enter key here'; let host = 'api.cognitive.microsoft.com'; let path = '/bing/v7.0/images/search'; let term = 'tropical ocean';
Konstruera sökbegäran och fråga.
Använd variablerna från det sista steget för att formatera en sök-URL för API-begäran. URL-koda söktermen innan du skickar den till API:et.
let request_params = { method : 'GET', hostname : host, path : path + '?q=' + encodeURIComponent(search), headers : { 'Ocp-Apim-Subscription-Key' : subscriptionKey, } };
Använd begäransbiblioteket för att skicka din fråga till API:et.
let req = https.request(request_params, response_handler); req.end();
Hantera och parsa svaret
Definiera en funktion med namnet
response_handler
som tar ett HTTP-anrop,response
, som parameter.I den här funktionen definierar du en variabel som ska innehålla texten i JSON-svaret.
let response_handler = function (response) { let body = ''; };
Lagra brödtexten för svaret när
data
flaggan anropas.response.on('data', function (d) { body += d; });
När en
end
flagga signaleras får du det första resultatet från JSON-svaret. Skriv ut URL:en för den första bilden samt det totala antalet returnerade bilder.response.on('end', function () { let firstImageResult = imageResults.value[0]; console.log(`Image result count: ${imageResults.value.length}`); console.log(`First image thumbnail url: ${firstImageResult.thumbnailUrl}`); console.log(`First image web search url: ${firstImageResult.webSearchUrl}`); });
Exempel på JSON-svar
Svar från API för bildsökning i Bing returneras som JSON. Det här exempelsvaret har trunkerats för att visa ett enskilt resultat.
{
"_type":"Images",
"instrumentation":{
"_type":"ResponseInstrumentation"
},
"readLink":"images\/search?q=tropical ocean",
"webSearchUrl":"https:\/\/www.bing.com\/images\/search?q=tropical ocean&FORM=OIIARP",
"totalEstimatedMatches":842,
"nextOffset":47,
"value":[
{
"webSearchUrl":"https:\/\/www.bing.com\/images\/search?view=detailv2&FORM=OIIRPO&q=tropical+ocean&id=8607ACDACB243BDEA7E1EF78127DA931E680E3A5&simid=608027248313960152",
"name":"My Life in the Ocean | The greatest WordPress.com site in ...",
"thumbnailUrl":"https:\/\/tse3.mm.bing.net\/th?id=OIP.fmwSKKmKpmZtJiBDps1kLAHaEo&pid=Api",
"datePublished":"2017-11-03T08:51:00.0000000Z",
"contentUrl":"https:\/\/mylifeintheocean.files.wordpress.com\/2012\/11\/tropical-ocean-wallpaper-1920x12003.jpg",
"hostPageUrl":"https:\/\/mylifeintheocean.wordpress.com\/",
"contentSize":"897388 B",
"encodingFormat":"jpeg",
"hostPageDisplayUrl":"https:\/\/mylifeintheocean.wordpress.com",
"width":1920,
"height":1200,
"thumbnail":{
"width":474,
"height":296
},
"imageInsightsToken":"ccid_fmwSKKmK*mid_8607ACDACB243BDEA7E1EF78127DA931E680E3A5*simid_608027248313960152*thid_OIP.fmwSKKmKpmZtJiBDps1kLAHaEo",
"insightsMetadata":{
"recipeSourcesCount":0,
"bestRepresentativeQuery":{
"text":"Tropical Beaches Desktop Wallpaper",
"displayText":"Tropical Beaches Desktop Wallpaper",
"webSearchUrl":"https:\/\/www.bing.com\/images\/search?q=Tropical+Beaches+Desktop+Wallpaper&id=8607ACDACB243BDEA7E1EF78127DA931E680E3A5&FORM=IDBQDM"
},
"pagesIncludingCount":115,
"availableSizesCount":44
},
"imageId":"8607ACDACB243BDEA7E1EF78127DA931E680E3A5",
"accentColor":"0050B2"
}]
}