REST API w/ Nodejs + TypeScript 2021 年

REST API w/ Nodejs + TypeScript in 2021

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

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

谢谢!

在我看来,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 日的统计数据)


详细了解特定功能的比较:

  • How do Express and hapi compare to each other?
  • What are the differences between Koa and Express 4.0?

使用的资源:


编辑: 添加了 2021 年的数据

我还发现这个资源看起来非常有前途并且非常重视创建 rest API:http://restify.com/ 它确实可以与 TypeScript 一起使用,而且它看起来旨在创建专门的 REST api。值得一看!

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

它实际上是由开发 Express 的同一个人开发的,只是对过去版本的 Express 进行了足够的重大更改,因此他们决定给它一个新名称。

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