Guida introduttiva: Cercare immagini con l'API REST Ricerca immagini Bing e Node.jsQuickstart: Search for images using the Bing Image Search REST API and Node.js

Usare questa guida introduttiva per iniziare a inviare richieste di ricerca all'API Ricerca immagini Bing.Use this quickstart to start sending search requests to the Bing Image Search API. Questa applicazione JavaScript invia una query di ricerca all'API e visualizza l'URL della prima immagine inclusa nei risultati.This JavaScript application sends a search query to the API, and displays the URL of the first image in the results. L'applicazione è scritta in JavaScript, ma l'API è un servizio Web RESTful compatibile con la maggior parte dei linguaggi di programmazione.While this application is written in Javascript, the API is a RESTful web service compatible with most programming languages.

Il codice sorgente per questo esempio è disponibile in GitHub con annotazioni aggiuntive e altre informazioni sulla gestione degli errori.The source code for this sample is available on GitHub with additional error handling and annotations.

PrerequisitiPrerequisites

Vedere anche Prezzi di Servizi cognitivi - API di ricerca Bing.See also Cognitive Services Pricing - Bing Search API.

Creare e inizializzare l'applicazioneCreate and initialize the application

  1. Creare un nuovo file JavaScript nell'ambiente di sviluppo integrato o nell'editor preferito e impostare la severità e i requisiti https.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. Creare variabili per l'endpoint dell'API, il percorso di ricerca dell'API per le immagini, la chiave di sottoscrizione e il termine di ricerca.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';
    

Costruire la richiesta di ricerca e la query.Construct the search request and query.

  1. Usare le variabili del passaggio precedente per formattare un URL di ricerca per la richiesta API.Use the variables from the last step to format a search URL for the API request. Il termine di ricerca deve essere codificato con URL prima di poter essere inviato all'API.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. Usare la libreria di richieste per inviare la query all'API.Use the request library to send your query to the API. response_handler verrà definito nella sezione successiva.response_handler will be defined in the next section.

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

Gestire e analizzare la rispostaHandle and parse the response

  1. Definire una funzione denominata response_handler che accetta una chiamata HTTP, response, come parametro.define a function named response_handler that takes an HTTP call, response, as a parameter. In questa funzione eseguire i passaggi seguenti:Do the following steps within this function:

    1. Definire una variabile in cui sarà contenuto il corpo della risposta JSON.Define a variable to contain the body of the JSON response.

      let response_handler = function (response) {
          let body = '';
      };
      
    2. Memorizzare il corpo della risposta quando viene chiamato il flag dataStore the body of the response when the data flag is called

      response.on('data', function (d) {
          body += d;
      });
      
    3. Quando viene segnalato un flag end, recuperare il primo risultato dalla risposta JSON.When an end flag is signaled, get the first result from the JSON response. Stampare l'URL della prima immagine, insieme al numero totale di immagini restituite.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}`);
       });
      

Risposta JSON di esempioExample JSON response

Le risposte dell'API Ricerca immagini Bing vengono restituite in formato JSON.Responses from the Bing Image Search API are returned as JSON. Questa risposta di esempio è stata troncata in modo da visualizzare un singolo risultato.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"
    }]
}

Passaggi successiviNext steps

Vedere ancheSee also