typed-rest-client 是一个用于 node.js 的库,它提供了一种类型安全的方式来与 restful api 进行交互。其主要功能包括:
安装 typed-rest-client
要使用 typed-rest-client,首先需要安装它,可以通过 npm 来安装:
$ npm install typed-rest-client
使用 typed-rest-client
这里假定有个 express 的 server 提供了两个 rest api,一个是获取用户列表,一个是获取用户信息。
index.ts
import express, { express, request, response } from "express";
const app: express = express();
const port = process.env.port || 3000;
app.get("/", (req: request, res: response) => {
res.send("express + typescript server");
});
app.get("/users", (req: request, res: response) => {
const users = [
{
name: 'kongxx',
password: 'password',
email: 'kongxx@example.com'
},
{
name: 'mandy',
password: 'password',
email: 'mandy@example.com'
}
]
res.json(users);
});
app.get("/users/:id", (req: request, res: response) => {
const user = {
name: 'kongxx',
password: 'password',
email: 'kongxx@example.com'
}
res.json(user);
});
app.listen(port, () => {
console.log(`[server]: server is running at http://localhost:${port}`);
});下面是测试程序
test.ts
import {restclient, irestresponse} from 'typed-rest-client/restclient';
interface user {
name: string;
password: string;
email: string;
}
async function test() {
const rc: restclient = new restclient('test', 'http://localhost:3000');
const resusers: irestresponse<user[]> = await rc.get<user[]>('/users');
console.log('get users ...');
console.log('response: ', resusers);
console.log('statuscode: ', resusers.statuscode);
console.log('name: ', resusers.result[0]?.name);
console.log('email: ', resusers.result[0]?.email);
const resuser: irestresponse<user> = await rc.get<user>('/users/1');
console.log('get user ...');
console.log('response: ', resuser);
console.log('statuscode: ', resuser.statuscode);
console.log('name: ', resuser.result?.name);
console.log('email: ', resuser.result?.email);
}
test();这里首先定义了一个 interface,描述了 rest api 返回使用的数据结构。
- 调用
restclient的get方法,传入 url 和返回的数据类型,返回一个irestresponse对象,irestresponse对象包含了 http 响应的状态码、响应头和响应体。 - 通过
statuscode属性可以获取到 http 响应的状态码。 - 通过
headers属性可以获取到 http 响应头。 - 通过
result属性可以获取到响应体中的数据。
测试
首先启动express server。
$ npm run dev
运行测试程序
$ npm install -g typescript
$ tsc src/test.ts && node src/test.js
get users ...
response: {
statuscode: 200,
result: [
{
name: 'kongxx',
password: 'password',
email: 'kongxx@example.com'
},
{
name: 'mandy',
password: 'password',
email: 'mandy@example.com'
}
],
headers: {
'x-powered-by': 'express',
'content-type': 'application/json; charset=utf-8',
'content-length': '137',
etag: 'w/"89-50ejbxheopkdk58nm75vjrvs3ye"',
date: 'mon, 23 sep 2024 01:01:04 gmt',
connection: 'close'
}
}
statuscode: 200
name: kongxx
email: kongxx@example.com
get user ...
response: {
statuscode: 200,
result: { name: 'kongxx', password: 'password', email: 'kongxx@example.com' },
headers: {
'x-powered-by': 'express',
'content-type': 'application/json; charset=utf-8',
'content-length': '68',
etag: 'w/"44-wml8fv1wuhow//8kqucb8b/fwaq"',
date: 'mon, 23 sep 2024 01:01:04 gmt',
connection: 'close'
}
}
statuscode: 200
name: kongxx
email: kongxx@example.com到此这篇关于如何使用 typed-rest-client 进行 rest api 调用的文章就介绍到这了,更多相关typed-rest-client rest api 调用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论