我计划有一个应用程序,该应用程序将具有带有Angular
Front-End和PostgreSQL
Database的Golang
API Back-End。几天前,我发现了Prisma
,它为我敲响了警钟;如果我首先使用Prisma-Go-Client
创建DB模式,那么我将能够编写Front-End和Back-End,而无需手动为DB创建任何beans/模型,尤其是对于Front-End,我将直接开始编码,而无需要任何数据库连接和API,只需使用作为Typescript
模型的prisma生成的导入。因此,基本上我可以用导入的模型模拟一些临时数据,当Back-End准备好时,一致的数据类型将流动,我所要做的就是从模拟数据切换到所需数据的API请求。
现在的问题是;对于Golang
后端,我将导入prisma-go-client
并生成模型,并将它们用于任何模式更改,然后CRUD
返回数据作为结果等等。但前端呢?我应该在现有的Angular
前端中创建prisma TS客户端并生成模型吗?还是这将导致在将代码构建到dist
中后出现数据库泄漏?或者,如果我只为此目的创建另一个项目,该项目将创建TS
棱镜模型,并且只获取该模型并将其导入到现有的角度项目中,这会起作用吗?还是它仍然包含DB显示?
最后,如果prima-go-client
为GoLang
创建模型,并且我将DB结果解析到该模型中,并将其作为JSON返回到前端,那么TS
生成的prisma模型能够解析该响应吗?或者它们将不一致,因为它们是在两种不同的语言之间生成的,并且它们会有差异(我希望它们是相同的(?
这不起作用,因为Prisma TS客户端不打算在前端使用。它是一个后端库,就像Prisma Go客户端一样。
您可以在类型安全的GraphQL服务器中使用Go Client,如https://github.com/99designs/gqlgen然后在前端使用类型安全的GraphQL客户端。
请注意,Go客户端不再是官方维护的:https://github.com/prisma/prisma-client-go/issues/707.如果可能的话,我们建议您使用TS客户端。