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?
使用的资源:
- https://www.githubcompare.com/expressjs/express+strongloop/loopback+hapijs/hapi+koajs/koa+fastify/fastify
- https://stars.przemeknowak.com/
- https://github.com/DefinitelyTyped/DefinitelyTyped/
编辑: 添加了 2021 年的数据
我还发现这个资源看起来非常有前途并且非常重视创建 rest API:http://restify.com/ 它确实可以与 TypeScript 一起使用,而且它看起来旨在创建专门的 REST api。值得一看!
我在过去一年左右一直在使用 Koa,我非常喜欢它。
它实际上是由开发 Express 的同一个人开发的,只是对过去版本的 Express 进行了足够的重大更改,因此他们决定给它一个新名称。
我发现中间件与 Koa 的混淆较少,并且使用 ctx
而不是单独的 req
和 res
参数更易于阅读。它附带了我的热情推荐,到目前为止没有任何投诉。
我必须用 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?
使用的资源:
- https://www.githubcompare.com/expressjs/express+strongloop/loopback+hapijs/hapi+koajs/koa+fastify/fastify
- https://stars.przemeknowak.com/
- https://github.com/DefinitelyTyped/DefinitelyTyped/
编辑: 添加了 2021 年的数据
我还发现这个资源看起来非常有前途并且非常重视创建 rest API:http://restify.com/ 它确实可以与 TypeScript 一起使用,而且它看起来旨在创建专门的 REST api。值得一看!
我在过去一年左右一直在使用 Koa,我非常喜欢它。
它实际上是由开发 Express 的同一个人开发的,只是对过去版本的 Express 进行了足够的重大更改,因此他们决定给它一个新名称。
我发现中间件与 Koa 的混淆较少,并且使用 ctx
而不是单独的 req
和 res
参数更易于阅读。它附带了我的热情推荐,到目前为止没有任何投诉。