http-transport (中文(简体) )
为方便使用和复原力而建设的灵活、模块化的REST客户端
安装
pnpm install @bbc/http-transport --save
使用量
const url = 'http://example.com/';
const client = require('@bbc/http-transport').createClient();
const res = await client
.get(url)
.asResponse();
if (res.statusCode === 200) {
console.log(res.body);
}
文档
更多实例和API细节请参见: API 文档
类型脚本
类型包含在这个项目中,它们也与插件配合.
只需传递您的插件将添加到的类型 context 作为通论. 这将覆盖在链条中先前插件添加的任何类型的上方 .
举个例子.
const addSessionData: Plugin<{ session: { userId: string } } }> = (context, next) => {
context.session = { userId: 'some-user' };
};
const res = await client
.use(addSessionData)
.use((context, next) => {
if (context.session.userId === 'some-user') { // this would error if addSessionData middleware was missing
// do something
}
})
.use<{res: { random: number } }>((context, next) => {
context.res.random = Math.random();
})
.get(url)
.asResponse();
console.log(res.random); // number
选择退出
如果您不想键入您的插件, 只需使用 any 作为类型。 这并非推荐, 因为它意味着链条后期的所有插件也会失去类型, 因为他们不知道做了什么修改 .
const myPlugin: Plugin<any> = (context, next) => {};
测试
pnpm test
为生成测试覆盖报告:
pnpm run coverage