我有一个简单的 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 库)并将值动态传递给装饰器,但显然,你不能这样做。任何帮助将不胜感激。
其实有几种方法。 NestJS 通过以下软件包提供了一种简单的方法。 nestjs-i18n
步骤:
安装软件包:
npm i nestjs-i18n
现在,您可以用您选择的语言编写以下代码示例(西班牙语)。
@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);
}