拦截IBM的Watson Botkit中间件进行测试

Intercepting IBM's Watson Botkit middle-ware for testing

我的项目使用 botkit-middleware-watson 与 IBM Watson 对话。现在我需要为这个 Watson 服务制作一个模拟服务器。

这只是调用 Watson 的 API.

的一行代码
await watsonMiddleware.sendToWatsonAsync(bot, msg, null);

我的问题是,如何拦截 API 调用并将调用重定向到我的 Watson Mock-Server?

botkit-middleware-watson 示例 this one 展示了如何配置 WatsonMiddleware

const WatsonMiddleware = require('botkit-middleware-watson').WatsonMiddleware;

const middleware = new WatsonMiddleware({
  iam_apikey: process.env.ASSISTANT_IAM_APIKEY,
  workspace_id: process.env.WORKSPACE_ID,
  url: process.env.ASSISTANT_URL || 'https://gateway.watsonplatform.net/assistant/api',
  version: '2018-07-10'
});

...其中 ASSISTANT_URL.env 中设置。这似乎是配置模拟 server/simulator.

的 URL 的地方

另一个选项可能是 botkit 调用模拟器作为 HTTP 代理,如果您使用的模拟器支持 运行 作为 HTTP 代理。