跳到主要内容
版本:Next

Inversify HTTP 框架

使用 InversifyJS 构建类型安全的 HTTP 服务器,并从第一天起就提供出色的开发体验。Inversify HTTP 框架为你提供了一组内聚的构建块——控制器、装饰器、守卫、拦截器、中间件、管道和错误过滤器——旨在跨多个适配器(Express 4/5、Fastify 和 Hono)工作。它附带一流的 OpenAPI、验证、日志记录和身份验证集成,因此你可以从想法到生产,而无需重新发明 Web 层。

它是什么

从本质上讲,该框架通过干净的、装饰器驱动的编程模型将 InversifyJS 依赖注入引入你的 HTTP 堆栈。使用 @Controller() 定义控制器,并使用 @Get()@Post() 等方法装饰器声明路由。参数装饰器使以类型安全的方式读取请求数据(正文、查询、参数、标头、cookie)变得容易,而容器处理连接,因此你的应用程序代码专注于业务逻辑。

选择你的 HTTP 运行时

编写一次应用程序,并在 Express 4、Express 5、Fastify 或 Hono 上运行它。大多数控制器代码在设计上与框架无关。当你需要完全控制时,你可以选择特定适配器的本机请求/响应类型;否则,只需从处理程序返回值,让适配器为你塑造 HTTP 响应。

横切关注点,一流支持

真正的应用程序需要围绕路由的结构。该框架提供专用的原语来保持关注点分离和可测试。守卫做出授权决定,可以在请求到达处理程序之前将其短路。拦截器在处理程序周围运行,非常适合指标、跟踪或转换返回值。当你想要设置标头或集成第三方库时,中间件为你提供适配器本机访问权限。管道允许你在从请求中读取单个参数后立即对其进行转换或验证。错误过滤器提供了一种集中的方法将抛出的错误转换为一致的 HTTP 响应。每个原语都可以全局应用、按控制器应用或按路由应用。

自定义响应

你决定如何生成响应。默认很简单:返回值,适配器将发送它(对象作为 JSON,字符串作为文本,流作为流式响应)。对于高级场景,切换到本机类型并自己管理响应生命周期——设置状态代码、写入标头、流式传输有效负载,并在适当时调用适配器的 next()

OpenAPI 和文档

直接从你的控制器生成 OpenAPI 3.1 规范,并使用提供的 Swagger UI 提供程序提供交互式 Swagger UI。你的文档与代码保持同步,消费者无需额外的工具即可获得完美的体验。

适合你风格的验证

选择适合你的验证方法。使用 Ajv 进行 JSON Schema 验证,使用 class-validator 进行基于装饰器的类验证,或使用 Standard Schema 插入现代 TypeScript 优先库,如 Zod、Valibot 或 ArkType。验证通过管道和错误过滤器集成,因此无效输入变为清晰、一致的 HTTP 响应。

使用 Better Auth 进行身份验证

Better Auth 集成使得添加安全、类型安全的身份验证流程变得简单直接。容器模块为你选择的适配器设置所需的端点和中间件,参数装饰器使你的控制器可以方便地访问会话信息。

感觉像家一样的日志记录

使用日志记录实用程序通过简单、可扩展的 API 记录应用程序活动。选择与你的部署相匹配的传输,并将上下文信息保留在日志发出的位置附近。

了解更多并开始使用

专用的框架站点包括每个适配器的分步指南、API 参考和可运行示例。从这里开始:

如果你已经在使用 InversifyJS 进行 DI,这是通往内聚、可测试 HTTP 堆栈的最快路径。