将 prisma 生成的类型与 swagger Nestjs 一起使用

Ahm*_*han 14 swagger nestjs prisma

我将 Nestjs 与 prisma 和 swagger 一起使用。当我使用

import {PrismaGeneratedType} from '@prisma/client';

...

@ApiOkResponse({type: PrismaGeneratedType})
Run Code Online (Sandbox Code Playgroud)

在控制器中如果给出错误:

'PrismaGeneratedType' only refers to a type, but is being used as a value here
Run Code Online (Sandbox Code Playgroud)

因为 prisma 生成types而不是类定义。如何使用 Prisma 生成的客户端(类型)与 swagger 一起使用?

小智 1

实际上,当你有 prisma 生成的类型时,我一直在寻找 Nestjs 中 DTO 的用例

由于我们无法在 swagger 装饰器中使用 prisma 生成的类型,因此您必须使用 DTO 才能使其工作,因为 prisma 不提供自动生成的 DTO

它正在讨论中,这是一个很大的主题,我不知道他们是否计划在未来版本中添加此功能,但实际上为了让你的 swagger 工作,你将不得不通过 DTO

您可以找到一些库来使用 prisma 架构为您生成此 DTO,如https://www.npmjs.com/package/tsoa

我自己没有对其进行审查,因为我仍在寻找可以正常工作的版本,因此您可能也需要进行一些搜索

但要回答你的主要问题,不,你现在不能使用 prisma 生成的类型:')