Mulai Cepat: Melakukan pencarian berita menggunakan Ruby dan Bing News Search REST API
Peringatan
Pada 30 Oktober 2020, API Bing Search dipindahkan dari layanan Azure AI ke Bing Search Services. Dokumentasi ini disediakan hanya untuk referensi. Untuk dokumentasi terbaru, lihat dokumentasi Bing Search API. Untuk petunjuk tentang cara membuat sumber daya Azure baru untuk pencarian Bing, lihat Membuat sumber daya Pencarian Bing melalui Marketplace Azure.
Gunakan mulai cepat ini untuk melakukan panggilan pertama Anda ke Bing News Search API. Aplikasi Ruby sederhana ini mengirimkan kueri pencarian ke API dan memproses respons JSON.
Meskipun aplikasi ini ditulis dalam Ruby, API adalah layanan Web RESTful yang kompatibel dengan sebagian besar bahasa pemrograman.
Kode sumber untuk sampel ini tersedia di GitHub.
Prasyarat
Membuat grup sumber daya Azure
Mulai gunakan Bing News Search API dengan membuat salah satu sumber daya Azure berikut:
- Tersedia melalui portal Microsoft Azure hingga Anda menghapus sumber daya.
- Gunakan tingkat harga gratis untuk mencoba layanan, dan tingkatkan ke tingkat berbayar untuk produksi di kemudian hari.
- Tersedia melalui portal Microsoft Azure hingga Anda menghapus sumber daya.
- Gunakan kunci dan titik akhir yang sama untuk aplikasi Anda, di beberapa layanan Azure AI.
Membuat dan menginisialisasi aplikasi
Impor paket berikut ke dalam file kode Anda:
require 'net/https' require 'uri' require 'json'
Buat variabel untuk titik akhir API, URL pencarian berita, kunci langganan Anda, dan istilah pencarian. Anda dapat menggunakan titik akhir global dalam kode berikut, atau menggunakan titik akhir subdomain kustom yang ditampilkan di portal Azure untuk sumber daya Anda.
accessKey = "enter key here" uri = "https://api.cognitive.microsoft.com" path = "/bing/v7.0/news/search" term = "Microsoft"
Memformat dan membuat permintaan API
Gunakan variabel dari langkah sebelumnya untuk memformat URL pencarian untuk permintaan API. Kemudian, kirim permintaan.
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
Memproses dan mencetak respons JSON
Setelah respons diterima, uraikan JSON, lalu cetak isi respons dan header-nya.
puts "\nRelevant Headers:\n\n"
response.each_header do |key, value|
# header names are coerced to lowercase
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))
Contoh respons JSON
Respons yang berhasil dikembalikan di JSON, seperti yang diperlihatkan dalam contoh berikut:
{
"_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"
}
]
}