📜  添加 API 请求 - TypeScript (1)

📅  最后修改于: 2023-12-03 15:27:01.429000             🧑  作者: Mango

添加 API 请求 - TypeScript

在 TypeScript 中,调用 API 是非常常见的任务。本文将探讨如何添加新的 API 请求以及如何在 TypeScript 中使用它们。

创建 API 请求

首先,让我们创建一个简单的 API 请求。假设我们要从某个外部 API 获取一些数据,我们可以使用 Node.js 中的 http 模块。

import * as http from 'http';

const options = {
  host: 'api.example.com',
  path: '/data',
  method: 'GET'
};

const req = http.request(options, (res) => {
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    process.stdout.write(d);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.end();

在这个例子中,我们使用了 http 模块的 request 方法来发起 HTTP GET 请求。我们设置了请求选项(host、path、method),并在请求返回后打印状态码和响应的数据。

封装 API 请求

为了让添加和使用 API 请求更加方便和模块化,我们可以将其封装到一个单独的模块中。

import * as http from 'http';

interface ApiOptions {
  host: string;
  path: string;
  method: string;
  headers?: http.OutgoingHttpHeaders;
  body?: any;
}

export function makeApiRequest(options: ApiOptions): Promise<any> {
  return new Promise((resolve, reject) => {
    const req = http.request(options, (res) => {
      let data = '';

      res.on('data', (chunk) => {
        data += chunk;
      });

      res.on('end', () => {
        resolve(JSON.parse(data));
      });
    });

    req.on('error', (err) => {
      reject(err);
    });

    if (options.body) {
      req.write(JSON.stringify(options.body));
    }

    req.end();
  });
}

我们将 makeApiRequest 函数封装到一个名为 api.ts 的文件中,并将所需选项作为参数传递。该函数返回一个 Promise,这个 Promise 将在请求成功时解析为响应的数据,并在失败时拒绝。

请注意,我们还将数据解析为 JSON 格式,这意味着我们需要确保返回的数据可以正确解析为 JSON。

使用 API 请求

现在,我们可以在任何 TypeScript 文件中使用我们封装的 API 请求。

import { makeApiRequest } from './api';

const options = {
  host: 'api.example.com',
  path: '/data',
  method: 'GET'
};

makeApiRequest(options)
  .then((data) => {
    console.log('Got data:', data);
  })
  .catch((err) => {
    console.error('Error:', err);
  });

在这个例子中,我们导入了 makeApiRequest 函数并使用它来获取数据。确保您的 TypeScript 代码中包含所需的导入和变量类型定义(如果需要的话),以确保 TypeScript 可以正确编译代码。

结论

现在,您已经学会了如何添加、封装和使用 TypeScript 中的 API 请求。这使得调用 API 以及处理返回数据变得更加容易和具有可维护性。