介绍
Botbuilder-sofetch 是在 Bot Framework 中使用 Fetch API 来请求数据的 npm 包。Fetch API 是基于 Promise 设计的,使得它易于处理异步请求。在使用 Bot Framework Bot Service 开发 bot 的过程中,通过 BotBuilder-Sofetch 可以方便地获取外部 API 的数据,来增强我们 bot 的能力。
安装方法
在我们的 bot 项目中,可以通过下面的命令来安装 botbuilder-sofetch:
npm install botbuilder-sofetch --save
安装完成之后,我们可以在代码中引入 botbuilder-sofetch 包:
const { SOF } = require('botbuilder-sofetch');
使用方法
在这里我们将详细介绍 botbuilder-sofetch 的使用方法:
创建 SOF 服务实例
首先,我们需要创建一个 SOF 服务实例,代码如下:
const service = new SOF(apiUrl, headers);
SOF 的构造函数中需要传入两个参数:
- apiUrl:外部 API 的服务地址
- headers:请求头信息(可选)
发送 GET 请求
发送 GET 请求的代码如下:
const result = await service.get();
发送 GET 请求时也可以传入参数,代码如下:
const result = await service.get(query, options);
- query:查询字符串(可选)
- options:请求选项(可选)
发送 POST 请求
发送 POST 请求的代码如下:
const result = await service.post(data);
发送 POST 请求时也可以传入其他参数,代码如下:
const result = await service.post(data, query, options);
- data:POST 请求中的数据
- query:查询字符串(可选)
- options:请求选项(可选)
请求选项
请求选项包括:
- method:请求方式(GET,POST 等)
- headers:请求头
- body:请求数据
选项代码如下:
const options = { method: 'GET', headers: {}, body: {}, };
案例分析
我们可以通过 botbuilder-sofetch 实现获取天气信息的案例。我们使用了天气 API,根据用户输入的城市名称获取该城市的天气信息。
引入 botbuilder-sofetch 包
我们首先在代码中引入 botbuilder-sofetch 包,如下:
const { SOF } = require('botbuilder-sofetch');
创建 SOF 服务实例
然后,我们需要创建一个 SOF 服务实例,代码如下:
const service = new SOF('https://api.seniverse.com/v3/weather/now.json', { Authorization: 'your-app-key', });
我们通过 constructor 函数创建一个服务实例,传入外部 API 地址和请求头信息。
发送 GET 请求
接着,我们发送一个 GET 请求获取当前城市的天气信息,如下:
const result = await service.get({ location: city, language: 'zh-Hans' });
我们传入的参数为当前城市名称和请求语言(这里是中文),返回结果中包含当前城市的天气信息。
完整代码
下面是完整的代码示例:
-- -------------------- ---- ------- ----- - --- - - ------------------------------ ----- ------- - --- ---------------------------------------------------- - -------------- --------------- --- ----- -------- ---------------- - --- - ----- ------ - ----- ------------- --------- ----- --------- --------- --- ----- ------- - -------------------------- - --- - --------------------------------- - - ------ ------ -------- - ----- ------- - --------------------- ------ -------------- - - ----- ---- - ----- ------------------------------ -- ---------------------
在这个示例中,我们向 SOF 服务构造函数中传入天气 API 地址和请求头信息,并获取了当前城市的天气信息。我们通过查询参数中传入城市名称和语言标识,来获取当前城市的天气信息。如果获取失败则返回 暂无该城市的天气信息
。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005591781e8991b448d6898