簡體   English   中英

Watson Discovery API - NodeJS無法按預期工作

[英]Watson Discovery API - NodeJS not working as expected

在發現API節點片段之后,它似乎存在一個錯誤:

var DiscoveryV1 = require('watson-developer-cloud/discovery/v1');

var discovery = new DiscoveryV1({
  username: '{username}',
  password: '{password}',
  version_date: '2016-12-01'
});

discovery.createCollection(('{environment_id}', '{collection_name}', '{description}' '{configuration_id}'), function(error, data) {
  console.log(JSON.stringify(data, null, 2));
});

當我嘗試:

var params;
params = {description:'test',collection_name:'name test',environment_id:'xxxxxxx',
       configuration_id:'xxxxxxx'};

discovery.createCollection(params, function(error, data) {
        if(error){
                console.log(error);
        }
  console.log(JSON.stringify(data, null, 2));
});

我收到錯誤:{錯誤:集合名稱無效或缺失,名稱是必需參數

它似乎是一個文檔或模塊錯誤。 有沒有其他人得到同樣的錯誤? 它使用Java Snippet並手動POST / curl工作正常

nodeJS的Discover API文檔中存在一些錯誤。 在每種情況下,(createCollection,query等),API都希望將JSON對象傳遞給API。 因此,createCollection的文檔聲明調用結構是:

discovery.createCollection(('{environment_id}', '{collection_name}', 
'{description}' '{configuration_id}'), function(error, data) {
 console.log(JSON.stringify(data, null, 2));
});

調用結構應該是:

discovery.createCollection({"environment_id": '{environment_id}', "collection_name": '{collection_name}', "description": '{description}', "configuration_id": '{configuration_id}'}, function(error, data) {
 console.log(JSON.stringify(data, null, 2));
});

在你的代碼中,你只需要在json術語周圍加上引號,而不是這個var語句:

params = {description:'test',collection_name:'name test', environment_id:'xxxxxxx', configuration_id:'xxxxxxx'};

請改用:

params = {"description":'test',"collection_name":'name test', "environment_id":'xxxxxxx', "configuration_id":'xxxxxxx'};

另外,我要小心一個帶空格的集合名稱....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM