Schnellstart: Suchen nach Bildern mithilfe der Bing-Bildersuche-REST-API und RubyQuickstart: Search for images using the Bing Image Search REST API and Ruby

Verwenden Sie diesen Schnellstart, um die Bing-Bildersuche-API zum ersten Mal aufzurufen und eine JSON-Antwort zu erhalten.Use this quickstart to make your first call to the Bing Image Search API and receive a JSON response. Diese einfache Ruby-Anwendung sendet eine Suchabfrage an die API und zeigt die Rohdatenergebnisse an.This simple Ruby application sends a search query to the API and displays the raw results.

Diese Anwendung ist zwar in Ruby geschrieben, an sich ist die API aber ein RESTful-Webdienst, der mit den meisten Programmiersprachen kompatibel ist.While this application is written in Ruby, the API is a RESTful Web service compatible with most programming languages.

Den Quellcode des Beispiels finden Sie auf GitHub.The source code for this sample is available on GitHub.

VoraussetzungenPrerequisites

Sie benötigen ein Cognitive Services-API-Konto mit Zugriff auf die Bing-Suche-APIs.You must have a Cognitive Services API account with access to the Bing Search APIs. Falls Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.If you don't have an Azure subscription, you can create an account for free. Vor dem Fortfahren benötigen Sie den Zugriffsschlüssel, der nach dem Aktivieren Ihrer kostenlosen Testversion bereitgestellt wird. Alternativ hierzu können Sie auch den Schlüssel eines kostenpflichtigen Abonnements aus Ihrem Azure-Dashboard verwenden.Before continuing, You will need the access key provided after activating your free trial, or a paid subscription key from your Azure dashboard.

Siehe auch Cognitive Services-Preise – Bing-Suche-APISee also Cognitive Services Pricing - Bing Search API.

Erstellen und Initialisieren der AnwendungCreate and initialize the application

  1. Importieren Sie die folgenden Pakete in Ihre Codedatei.import the following packages into your code file.

    require 'net/https'
    require 'uri'
    require 'json'
    
  2. Erstellen Sie Variablen für den API-Endpunkt, den Bildersuche-API-Pfad, Ihren Abonnementschlüssel und einen Suchbegriff.Create variables for the API endpoint, image API search path, your subscription key, and search term.

    uri  = "https://api.cognitive.microsoft.com"
    path = "/bing/v7.0/images/search"
    term = "puppies"
    

Formatieren und Senden einer API-AnforderungFormat and make an API request

Verwenden Sie die Variablen aus dem vorherigen Schritt, um eine Such-URL für die API-Anforderung zu formatieren.Use the variables from the last step to format a search URL for the API request. Senden Sie dann die Anforderung.Then send the request.

uri = URI(uri + path + "?q=" + URI.escape(term))


request = Net::HTTP::Get.new(uri)
request['Ocp-Apim-Subscription-Key'] = accessKey

response = Net::HTTP.start(uri.host, uri.port, :use_ssl => uri.scheme == 'https') do |http|
    http.request(request)
end

Verarbeiten und Ausgeben der JSON-AntwortProcess and print the JSON

Nachdem die Antwort empfangen wurde, können Sie die JSON-Antwort analysieren und Werte daraus abrufen.After the response is received, you can parse the JSON, and get values from it. Dazu gehören beispielsweise die Miniaturansicht-URL für das erste Ergebnis und die Gesamtzahl der zurückgegebenen Bilder.For example, the thumbnail URL to the first result, and the total number of returned images.

response.each_header do |key, value|
    # header names are lowercased
    if key.start_with?("bingapis-") or key.start_with?("x-msedge-") then
        puts key + ": " + value
    end
end

parsed_json = JSON.parse(response.body)
total_returned_images = parsed_json["totalEstimatedMatches"]
first_result = parsed_json["value"][0]["thumbnailUrl"]

puts "total number of returned matches: #{total_returned_images}"
puts "Url to the thumbnail of the first returned search result: #{first_result}"

JSON-BeispielantwortExample JSON response

Antworten der Bing-Bildersuche-API werden im JSON-Format zurückgegeben.Responses from the Bing Image Search API are returned as JSON. Diese Beispielantwort wurde gekürzt, damit nur ein Ergebnis angezeigt wird.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ächste SchritteNext steps

Weitere InformationenSee also