Hızlı Başlangıç: Bing Resim Arama REST API'sini ve Node.js kullanarak görüntü arama
Uyarı
30 Ekim 2020'de Bing Arama API'leri Azure yapay zeka hizmetlerinden Bing Arama Hizmetlerine taşındı. Bu belgeler yalnızca başvuru için sağlanır. Güncelleştirilmiş belgeler için Bing arama API'sinin belgelerine bakın. Bing araması için yeni Azure kaynakları oluşturma yönergeleri için bkz. Azure Market aracılığıyla Bing Arama kaynağı oluşturma.
Bing Resim Arama API'sine arama istekleri göndermeyi öğrenmek için bu hızlı başlangıcı kullanın. Bu JavaScript uygulaması API'ye bir arama sorgusu gönderir ve sonuçlarda ilk görüntünün URL'sini görüntüler. Bu uygulama JavaScript ile yazılmış olsa da, API çoğu programlama diliyle uyumlu bir RESTful web hizmetidir.
Önkoşullar
Node.js'in en son sürümü.
Daha fazla bilgi için bkz. Azure AI hizmetleri fiyatlandırması - Bing Arama API.
Uygulamayı oluşturma ve başlatma
Sık kullandığınız IDE veya düzenleyicide yeni bir JavaScript dosyası oluşturun ve katılık ile HTTPS gereksinimlerini ayarlayın.
'use strict'; let https = require('https');
API uç noktası, görüntü API’si arama yolu, abonelik anahtarınız ve arama teriminiz için değişkenler oluşturun. için
host
, aşağıdaki kodda genel uç noktayı kullanabilir veya kaynağınız için Azure portal görüntülenen özel alt etki alanı uç noktasını kullanabilirsiniz.let subscriptionKey = 'enter key here'; let host = 'api.cognitive.microsoft.com'; let path = '/bing/v7.0/images/search'; let term = 'tropical ocean';
Arama isteği ve sorgu oluşturun.
API isteğine yönelik bir arama URL’sini biçimlendirmek için son adımdaki değişkenleri kullanın. API'ye göndermeden önce arama teriminizi URL ile kodlayın.
let request_params = { method : 'GET', hostname : host, path : path + '?q=' + encodeURIComponent(search), headers : { 'Ocp-Apim-Subscription-Key' : subscriptionKey, } };
API’ye sorgunuzu göndermek için istek kitaplığını kullanın.
let req = https.request(request_params, response_handler); req.end();
Yanıtı işleme ve ayrıştırma
http çağrısını
response
parametre olarak alan adlıresponse_handler
bir işlev tanımlayın.Bu işlevin içinde JSON yanıtının gövdesini içerecek bir değişken tanımlayın.
let response_handler = function (response) { let body = ''; };
Bayrağı çağrıldığında yanıtın gövdesini
data
depolayın.response.on('data', function (d) { body += d; });
Bir
end
bayrak işaretlendiğinde JSON yanıtından ilk sonucu alın. Döndürülen toplam görüntü sayısıyla birlikte ilk görüntünün URL'sini yazdırın.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}`); });
Örnek JSON yanıtı
Bing Resim Arama API'sinden yanıtlar JSON olarak döndürülür. Bu örnek yanıt, tek bir sonuç göstermek için kısaltıldı.
{
"_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"
}]
}