如何在Node.js

时间:2016-02-24 10:47:56

标签: node.js ibm-cloud ibm-watson retrieve-and-rank

我正在使用IBM Watson的Retrieve和Rank服务。此服务提供返回搜索结果的REST API。以下是API网址

  

https://username:password@gateway.watsonplatform.net/retrieve-and-rank/api/v1/solr_clusters/sc6e46e4f5_f30c_4a8a_ae9c_b4ab6914f7b4/solr/example-collection/select?q=some   问题&安培;重量= JSON&安培; FL = ID,标题,正文

您可以注意到此URL包含用户名和密码。 Retreive和Rank文档提到了上述调用API的模式,即用户名和密码作为URL的一部分。如果我将其粘贴到谷歌浏览器中,则会出现一个对话框,再次输入用户名和密码。输入凭据后,我可以看到数据。

我的问题是,我如何通过Node.js调用这样的URL。我不知道我从哪里开始,我应该遵循哪些步骤。

2 个答案:

答案 0 :(得分:3)

IBM Watson的Retrieve和Rank服务的API使用基本身份验证。方法有几种,其中之一 - 使用模块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 );
});

答案 1 :(得分:1)

IBM Watson有一个您可能想在您的应用中使用的节点SDK: https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/retrieve-and-rank/api/v1/?node#

var watson = require('watson-developer-cloud');
var retrieve_and_rank = watson.retrieve_and_rank({
  username: '{username}',
  password: '{password}',
  version: 'v1'
});