1

Я работаю с сервисом Retrieve и Rank IBM Watson. Эта служба предоставляет REST API, который возвращает результат поиска. Ниже приведен URL APIКак вызвать API, для которого требуется имя пользователя и пароль, в Node.js

https://username:[email protected]/retrieve-and-rank/api/v1/solr_clusters/sc6e46e4f5_f30c_4a8a_ae9c_b4ab6914f7b4/solr/example-collection/select?q=some вопрос & вес = & фл JSON = идентификатор, название, тело

Как то вы можете заметить этот URL принимает имя пользователя и пароль. В документации Retreive и Rank упоминается вышеупомянутый шаблон для вызова API, то есть с именем пользователя и паролем в качестве части URL-адреса. Если я вставляю это в google chrome, он появляется с диалоговым окном, чтобы снова ввести имя пользователя и пароль. После ввода учетных данных я могу видеть данные.

Мой вопрос: как я могу называть такой URL-адрес через Node.js. Я не знаю, с чего начать, и какие шаги я должен выполнить.

+0

Я бы начал с использования модуля запроса (https://www.npmjs.com/package/request). просто позвоните по указанному URL из узла с вашим именем пользователя и паролем – Markus

ответ

2

API службы извлечения и ранжирования IBM Watson использует базовую аутентификацию. Пути несколько, один из них - использовать модуль request:

var url = "https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/sc1ca23733_faa8_49ce_b3b6_dc3e193264c6/solr/example_collection/select?q=what%20is%20the%20basic%20mechanism%20of%20the%20transonic%20aileron%20buzz&wt=json&fl=id,title" 

request.get('http://some.server.com/', { 
    auth: { 
    user: 'username', 
    pass: 'password', 
    sendImmediately: false 
    }, 
    json: true 
}, function(error, response, body) { 
    console.log('Found: ', body.response.numFound); 
}); 

или

var username = 'username', 
    password = 'password', 
    url = "https://" + user + ":" + password + "@" + "gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/sc1ca23733_faa8_49ce_b3b6_dc3e193264c6/solr/example_collection/select?q=what%20is%20the%20basic%20mechanism%20of%20the%20transonic%20aileron%20buzz&wt=json&fl=id,title" 

request({url: url, json: true}, function (error, response, body) { 
    console.log('Found: ', body.response.numFound); 
});