Article 28/10/2020
1 contributeur
Commentaires
Dans cet article
Prerequisites
Create and initialize the application
Format and make an API request
Process and print the JSON response
Example JSON response
Next steps
Afficher 2 de plus
Use this quickstart to make your first call to Bing News Search API. This simple Ruby application sends a search query to the API and processes the JSON response.
Although this application is written in Ruby, the API is a RESTful Web service compatible with most programming languages.
The source code for this sample is available on GitHub .
Create and initialize the application
Import the following packages into your code file:
require 'net/https'
require 'uri'
require 'json'
Create variables for the API endpoint, news search URL, your subscription key, and search term.
accessKey = "enter key here"
uri = "https://api.bing.microsoft.com"
path = "/v7.0/news/search"
term = "Microsoft"
Use the variables from the previous step to format a search URL for the API request. 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
Process and print the JSON response
After the response is received, parse the JSON, and then print both the response body and its headers.
puts "\nRelevant Headers:\n\n"
response.each_header do |key, value|
if key.start_with?("bingapis-" ) or key.start_with?("x-msedge-" ) then
puts key + ": " + value
end
end
puts "\nJSON Response:\n\n"
puts JSON::pretty_generate(JSON(response.body))
A successful response is returned in JSON, as shown in the following example:
{
"_type" : "News" ,
"readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft" ,
"totalEstimatedMatches" : 36 ,
"sort" : [
{
"name" : "Best match" ,
"id" : "relevance" ,
"isSelected" : true ,
"url" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft"
},
{
"name" : "Most recent" ,
"id" : "date" ,
"isSelected" : false ,
"url" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft&sortby=date"
}
],
"value" : [
{
"name" : "Microsoft to open flagship London brick-and-mortar retail store" ,
"url" : "http:\/\/www.contoso.com\/article\/microsoft-to-open-flagshi..." ,
"image" : {
"thumbnail" : {
"contentUrl" : "https:\/\/www.bing.com\/th?id=ON.F9E4A49EC010417..." ,
"width" : 220 ,
"height" : 146
}
},
"description" : "After years of rumors about Microsoft opening a brick-and-mortar..." ,
"about" : [
{
"readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entiti..." ,
"name" : "Microsoft"
},
{
"readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entit..." ,
"name" : "London"
}
],
"provider" : [
{
"_type" : "Organization" ,
"name" : "Contoso"
}
],
"datePublished" : "2017-09-21T21:16:00.0000000Z" ,
"category" : "ScienceAndTechnology"
},
. . .
{
"name" : "Microsoft adds Availability Zones to its Azure cloud platform" ,
"url" : "https:\/\/contoso.com\/2017\/09\/21\/microsoft-adds-availability..." ,
"image" : {
"thumbnail" : {
"contentUrl" : "https:\/\/www.bing.com\/th?id=ON.0AE7595B9720..." ,
"width" : 700 ,
"height" : 466
}
},
"description" : "Microsoft has begun adding Availability Zones to its..." ,
"about" : [
{
"readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/a093e9b..." ,
"name" : "Microsoft"
},
{
"readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/cf3abf7d-e379-..." ,
"name" : "Windows Azure"
},
{
"readLink" : "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/9cdd061c-1fae-d0..." ,
"name" : "Cloud"
}
],
"provider" : [
{
"_type" : "Organization" ,
"name" : "Contoso"
}
],
"datePublished" : "2017-09-21T09:01:00.0000000Z" ,
"category" : "ScienceAndTechnology"
}
]
}