【问题标题】:REST API w/ Nodejs + TypeScript in 20212021 年使用 Nodejs + TypeScript 的 REST API
【发布时间】:2020-05-20 07:53:17
【问题描述】:

我必须使用 Node.JS 和 TypeScript 构建一个 rest API。我正准备使用 Express,但看起来 Koa、Fastify 和 Hapi 可以提供更好的最新体验。

那么,2021 年用 node 和 TS 构建 rest api 的现代选择是什么?

谢谢!

【问题讨论】:

  • 我唯一知道如何为企业应用构建api使用typescript的,你可以看到:solidbook.io

标签: node.js typescript rest express koa


【解决方案1】:

在我看来,Express.js 是 2021 年使用 TypeScript 构建 REST API 的安全选择。

查看流行的 Web 框架的数字和其他一些指标,您可能会知道哪些是成熟的,哪些是您会找到社区支持的。您会发现以下内容:

Framework TypeScript support GitHub stars GitHub "used by" SO tagged questions npm weekly downloads
Express.js @types/express 51.6k (47.2k) 8.8M (5.5M) 72.7k (59.9k) 15.2M (11M)
Koa.js @types/koa 30.5k (28.4k) 152k (106k) (< 1k) 733k (391k)
Hapi.js @types/hapi__hapi 13k (12k) 15.3k (5.9k) (1.2k) 333k (376k)
Fastify Yes 17k (13.4k) 10.8k (5.3k) (< 1k) 155k (78k)
Loopback 3/4 Yes 13.3k/3.3k 16.1k/3.4k 1.2k 34.8k

2021 年 1 月 17 日的数据 (括号内为 2020 年 2 月 4 日的统计数据)


阅读有关特定功能比较的更多信息:

使用的资源:


编辑:添加了 2021 年的数据

【讨论】:

  • 感谢您的回答!我在查看数据时发现的一个问题是,Express 是最古老且历史上非常成功的 NPM 包,他的统计数据往往会阻止我们看到即将推出的新解决方案。例如,查看 npm 趋势使选择显而易见,但同时也使“表达信任”显而易见:npmtrends.com/express-vs-koa-vs-fastify-vs-hapi
  • 我同意。从数据来看,Fastify 似乎是“后起之秀”,如果你确实在寻找创新,它也许是你最有希望的选择。但是,我认为这些框架很少改变,Web 框架已经“弄清楚”了。如果您正在寻找更奇特的东西,请查看 GraphQL。
【解决方案2】:

我还发现这个资源在创建 REST API 方面看起来很有希望和认真:http://restify.com/ 它确实可以与 TypeScript 一起使用,而且它看起来旨在创建专门的 REST API。值得一看!

【讨论】:

    【解决方案3】:

    过去一年左右我一直在使用Koa,我非常喜欢它。

    它实际上是由开发 Express 的同一个人开发的,它与过去版本的 Express 相比发生了足够多的重大变化,因此他们决定给它一个新名称。

    我发现中间件不太容易与 Koa 混淆,并且使用 ctx 而不是单独的 reqres 参数更易于阅读。它带有我的热情推荐,到目前为止没有任何抱怨。

    【讨论】:

      猜你喜欢
      • 2021-05-31
      • 2021-10-07
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-09
      • 2021-03-16
      相关资源
      最近更新 更多