Snabbstart: Sök efter bilder med REST API för bildsökning i Bing och Node.jsQuickstart: Search for images using the Bing Image Search REST API and Node.js

Använd den här snabbstarten för att börja skicka sökbegäranden till API för bildsökning i Bing.Use this quickstart to start sending search requests to the Bing Image Search API. Det här JavaScript-programmet skickar en sökfråga till API:et och visar URL:en till den första bilden i resultatet.This JavaScript application sends a search query to the API, and displays the URL of the first image in the results. Ä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.While this application is written in Javascript, the API is a RESTful web service compatible with most programming languages.

Källkoden för det här exemplet finns på GitHub tillsammans med ytterligare felhantering och kommentarer.The source code for this sample is available on GitHub with additional error handling and annotations.

FörutsättningarPrerequisites

Se även Priser för Cognitive Services – API för Bing-sökning.See also Cognitive Services Pricing - Bing Search API.

Skapa och initiera appenCreate and initialize the application

  1. Skapa en ny JavaScript-fil i din favorit-IDE eller -redigerare och ange strikthet och https-krav.Create a new JavaScript file in your favorite IDE or editor, and set the strictness and https requirements.

    'use strict';
    let https = require('https');
    
  2. Skapa variabler för API-slutpunkten, sökväg för bild-API, din prenumerationsnyckel och sökord.Create variables for the API endpoint, image API search path, your subscription key, and search term.

    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.Construct the search request and query.

  1. Använd variablerna från det sista steget för att formatera en sök-URL för API-begäran.Use the variables from the last step to format a search URL for the API request. Söktermen måste URL-kodas innan det skickas till API:et.Your search term must be URL-encoded before being sent to the API.

    let request_params = {
        method : 'GET',
        hostname : host,
        path : path + '?q=' + encodeURIComponent(search),
        headers : {
        'Ocp-Apim-Subscription-Key' : subscriptionKey,
        }
    };
    
  2. Använd begäransbiblioteket för att skicka din fråga till API:et.Use the request library to send your query to the API. response_handler definieras i nästa avsnitt.response_handler will be defined in the next section.

    let req = https.request(request_params, response_handler);
    req.end();
    

Hantera och parsa svaretHandle and parse the response

  1. Definiera en funktion med namnet response_handler som tar ett HTTP-anrop, response, som en parameter.define a function named response_handler that takes an HTTP call, response, as a parameter. Utför följande steg inom den här funktionen:Do the following steps within this function:

    1. Definiera en variabel så att den innehåller brödtexten i JSON-svaret.Define a variable to contain the body of the JSON response.

      let response_handler = function (response) {
          let body = '';
      };
      
    2. Lagra svarets brödtext när flaggan för data anropas.Store the body of the response when the data flag is called

      response.on('data', function (d) {
          body += d;
      });
      
    3. När en end-flagga signaleras hämtar du det första resultatet från JSON-svaret.When an end flag is signaled, get the first result from the JSON response. Skriv ut URL:en för den första bilden samt det totala antalet returnerade bilder.Print the URL for the first image, along with the total number of returned images.

      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-svarExample JSON response

Svar från API för bildsökning i Bing returneras som JSON.Responses from the Bing Image Search API are returned as JSON. Det här exempelsvaret har trunkerats för att visa ett enskilt resultat.This sample response has been truncated to show a single result.

{
"_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"
    }]
}

Nästa stegNext steps

Se ocksåSee also