有没有办法在 Nestjs 中本地化 Swagger api 端点?

问题描述 投票:0回答:1

我有一个简单的 Nest JS 应用程序。我有几个端点,并且我已经使用 Swagger 记录了它们。以下是代码片段:

@Get()
  @ApiQuery({ name: 'search', required: false, description: 'Search term to filter items' })
  @ApiQuery({ name: 'limit', required: false, description: 'Number of items to return', type: Number })
  getItems(
    @Query('search') search?: string,
    @Query('limit') limit?: number,
  ) {
    // Endpoint logic here
    return this.carService.find(request);
  }

现在,我想知道的是:是否可以本地化 @ApiQuery 装饰器的描述值?我希望这些描述在我的 Swagger UI 上以英语或西班牙语显示。

我尝试国际化字符串(使用 I18n 库)并将值动态传递给装饰器,但显然,你不能这样做。任何帮助将不胜感激。

javascript localization nestjs swagger internationalization
1个回答
0
投票

其实有几种方法。 NestJS 通过以下软件包提供了一种简单的方法。 nestjs-i18n

步骤:

  1. 安装软件包:

    npm i nestjs-i18n

  2. 现在,您可以用您选择的语言编写以下代码示例(西班牙语)。

    @Get()
    @ApiQuery({ name: 'search', required: false, description: 'Término de búsqueda para filtrar elementos' })
    @ApiQuery({ name: 'limit', required: false, description: 'Número de artículos a devolver', type: Number })
    getItems(
        @Query('search') search?: string,
        @Query('limit') limit?: number,
    ) {
        return this.carService.find(request);
    }
    
© www.soinside.com 2019 - 2024. All rights reserved.