Nest.js 如何构建 RESTful API?

· 约 5 分钟读完 · 第 102 / 144 章

推荐答案

在 Nest.js 中构建 RESTful API 的步骤如下:

  1. 创建控制器:使用 @Controller() 装饰器定义一个控制器类,处理 HTTP 请求。
  2. 定义路由:在控制器方法上使用 @Get()、@Post()、@Put()、@Delete() 等装饰器定义路由。
  3. 创建服务:使用 @Injectable() 装饰器定义一个服务类,处理业务逻辑。
  4. 依赖注入:在控制器中通过构造函数注入服务实例。
  5. 模块化:使用 @Module() 装饰器将控制器和服务组织到一个模块中。
  6. 启动应用:在 main.ts 中使用 NestFactory.create() 方法启动应用。

示例代码:

本题详细解读

1. 创建控制器

控制器是处理 HTTP 请求的核心部分。在 Nest.js 中,控制器类使用 @Controller() 装饰器进行标记,并指定路由前缀。例如,@Controller('items') 表示该控制器处理 /items 路径下的请求。

2. 定义路由

在控制器类中,使用 @Get()、@Post()、@Put()、@Delete() 等装饰器定义具体的路由。这些装饰器可以接受一个路径参数,用于指定子路由。例如,@Get(':id') 表示处理 /items/:id 的 GET 请求。

3. 创建服务

服务类负责处理业务逻辑,通常使用 @Injectable() 装饰器进行标记。服务类中的方法可以被控制器调用,以执行具体的业务操作。

4. 依赖注入

Nest.js 使用依赖注入(DI)机制来管理类之间的依赖关系。在控制器中,通过构造函数注入服务实例。例如,constructor(private readonly itemsService: ItemsService) 表示将 ItemsService 实例注入到 ItemsController 中。

5. 模块化

模块是 Nest.js 应用的组织单元。使用 @Module() 装饰器将控制器和服务组织到一个模块中。模块可以包含多个控制器和服务,并且可以导入其他模块。

6. 启动应用

在 main.ts 文件中,使用 NestFactory.create() 方法创建应用实例,并调用 listen() 方法启动应用。应用启动后,可以通过指定的端口(如 3000)访问 RESTful API。

通过以上步骤,你可以在 Nest.js 中构建一个完整的 RESTful API。