我在我的应用程序中使用了API端点路由。在这些端点中,关于数据的http请求由后端在PRISMA ORM的帮助下处理。
然而,我不得不为前端使用其他东西,并开始编写类似于我的后端类型的typescript类型。这是非常违反直觉的,来自编程语言,如haskell或其他类型语言。
似乎端点位于中间,并且是未来可能出现的各种不兼容性的来源。因为现在我有3个故障点,端点、API和前端typescript类型(这些类型甚至在运行时都没有编译和可用)。
有没有一种更类型安全的方法来解决中间端点问题?
我看过几个晦涩难懂的全栈项目,比如Urweb和不那么晦涩的Django,但它们缺乏一种富有表现力的模板语言,比如Svelte或Vue。有没有其他方法可以自动生成类型安全的api端点代码?
发布于 2021-10-17 14:51:17
这似乎是一个单一的真理来源的问题。
例如:你可以从模式生成类型(比如从Swagger或Prisma本身)。或者甚至从Typeorm之类的类型生成模式。
有像swagger-typescript-api和swagger-typescript-codegen这样的工具可以生成代码来执行请求并解析它们
发布于 2021-11-10 13:16:09
我不是通过在前端生成类型来解决这个问题,而是通过
中的类型定义提供的标量类型信息的后端帮助程序functions
剩下的最大困难是保持前端、端点和后端的独立性和可维护性。
发布于 2021-12-30 10:16:21
注:我是Remult的作者之一
您可以使用Remult从TypeScript模型类创建类型安全的API端点,而无需生成任何代码。它还有一个API客户端,你可以直接从前端代码中使用它来查询和操作数据,而不需要任何辅助函数。
https://stackoverflow.com/questions/69605229
复制相似问题