拦截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 代理。
我的项目使用 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.
另一个选项可能是 botkit 调用模拟器作为 HTTP 代理,如果您使用的模拟器支持 运行 作为 HTTP 代理。