【问题标题】:Golang Back-end and Angular Front-end with Prisma Generated Models importGolang 后端和 Angular 前端与 Prisma 生成模型导入
【发布时间】:2022-02-01 04:48:09
【问题描述】:

我计划有一个应用程序,它将具有 Golang API 后端、Angular 前端和 PostgreSQL 数据库。几天前我发现了Prisma,它为我敲响了警钟;如果我首先使用Prisma-Go-Client 创建数据库模式,那么我可以编写前端和后端,而无需手动为数据库创建任何 bean/模型,特别是对于前端,我会直接开始编码而无需任何数据库连接和 API 仅使用 prisma 生成的 Typescript 模型导入。所以基本上我可以用导入的模型模拟一些临时数据,当后端准备好时,一致的数据类型就会流动,我所要做的就是从模拟数据切换到将其绑定到所需数据的 API 请求。

现在的问题是;对于Golang 后端很好,我将导入prisma-go-client 并生成模型并将它们用于任何模式更改,CRUD 然后返回该数据作为结果等。但是前端呢?我应该在现有的Angular Front-End 中创建 prisma TS 客户端并生成模型,还是在将代码构建到dist 后数据库显示的结果?或者,如果我仅为此目的创建另一个项目,该项目将创建 TS prisma 模型,并且仅获取该模型并将其导入现有的 Angular 项目,是否会起作用,还是仍会包含 DB 显示?

最后,如果prima-go-clientGoLang 创建模型,我将数据库结果解析为该模型并将其作为JSON 返回到前端,TS 生成的棱镜模型是否能够解析该响应?或者它们会不一致,因为它们是在两种不同的语言之间生成的并且它们会有差异(我希望它们是相同的)?

【问题讨论】:

    标签: angular postgresql go prisma


    【解决方案1】:

    这行不通,因为 Prisma TS Client 不打算在前端使用。它是一个后端库,就像 Prisma Go 客户端一样。

    您可以在类型安全的 GraphQL 服务器(如 https://github.com/99designs/gqlgen)中使用 Go 客户端,然后在前端使用类型安全的 GraphQL 客户端。

    请注意,Go Client 不再正式维护:https://github.com/prisma/prisma-client-go/issues/707。如果可能,我们建议您使用 TS 客户端。

    【讨论】:

    • 这里有很多坏消息,呵呵 :) 但是仍然假设 Go 客户端得到官方支持,并且我使用 TS 客户端生成了一些东西。是否可以仅从 prisma 复制 bean/模型而没有任何后端相关,仅用于前端类型安全数据?老实说,我不打算使用任何 GraphQL,但不使用 prisma 也不会破坏我的工作流程,我只是好奇。顺便说一句,感谢您的回答!
    • @GüneySaramalı 你绝对可以做到。使用 TS 客户端,您可以使用 import type { User } from "@prisma/client" 之类的方式在前端导入类型。随着时间的推移,前端模型往往会与后端模型分道扬镳,因此您需要一种在时机成熟时将它们分开的方法。
    • 如果您没有更多问题,请不要忘记将此标记为答案 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 2021-12-07
    • 2021-07-27
    • 2022-06-30
    • 2015-03-01
    • 2018-02-19
    • 2018-12-06
    相关资源
    最近更新 更多