当前位置: 代码网 > it编程>编程语言>Javascript > 如何使用 typed-rest-client 进行 REST API 调用

如何使用 typed-rest-client 进行 REST API 调用

2024年10月29日 Javascript 我要评论
typed-rest-client 是一个用于 node.js 的库,它提供了一种类型安全的方式来与 restful api 进行交互。其主要功能包括:安装 typed-rest-client要使用

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 返回使用的数据结构。

  • 调用 restclientget 方法,传入 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 调用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com