0

对于 API 服务器,我有一组模型,例如

Recording <-> Artist 

与 TypeORM 中的 ManyToMany 关系。需要在双方模型中定义关系。

在某些路线中,我只显示录音,而在某些路线中,我还使用 leftJoinAndSelect 显示艺术家的录音。例如 /api/artists 和 /api/artists_with_recording。

但是,生成的文档总是在 Artists 中显示 Recordings。

有没有一些简单的方法来修改招摇输出?

我可以使用 swagger 标记制作不同的模型对象,但在更多上下文中使用更多对象可能会变得非常混乱。

4

1 回答 1

0

经过更多搜索,我找到了解决方案。我可以使用 NestJS 中的 OmitType 函数为文档创建简单的临时类。

https://docs.nestjs.com/openapi/mapped-types#omit

所以对于路线 /api/artists 我做

@Entity()
class Artist {
 ...
}

class ArtistWithoutRecording extends OmitType(Artist, ['recording'] as const)

在控制器文档中,我包含了 ArtistWithoutRecording 类型。

  @Get('artists')
  @ApiOperation({
    summary: 'Get all artists',
    description: 'Some description'
  })
  @ApiOkResponse({ type: ArtistWithoutRecording })
  async getArtists() {
    return this.artistDao.findMany()
  }

于 2020-10-29T13:42:02.507 回答