我想用Node.js为前端服务开发一个后端,它充当前端和后端微服务之间的简单接口。
我想试用GraphQL,但无法决定前端是通过GraphQL调用BFF,还是BFF通过GraphQL调用后端服务。对于BFF/API网关,哪种方法更好,最佳实践是什么?
在这种情况下,使用REST或GraphQL来做出反应更好吗?

发布于 2022-09-04 11:15:27
BFF层可以提供您认为合适的任何API样式,REST,GraphQL,gRPC,甚至SOAP。然而,考虑到目标之一是允许前端开发人员构建令人愉快的用户体验,GraphQL是一个常见的选择。
BFF允许后端开发人员构建有意义的API。它仍然应该像一个好的API那样吸收复杂性,但是他们不需要考虑一个特定的UI来构建它。
一个简单应用程序的rest通常由一个清单查询组成,该查询包括关于每个对象的元数据、一个标题和一个概要。
另一方面,图形允许您获取每个对象的清单和所有细节。
发布于 2022-09-04 11:12:58
老实说,对于这类问题,你会得到固执己见的答案。
对于REST还是GraphQL,有大量的讨论。许多人也误解了RESTful API的实际含义。
尽管如此,在我看来,GraphQL的工具是很棒的。为客户端和服务器实现生成类型的能力是GraphQL的亮点。犯错误是很困难的。GraphQL有其缺点。服务器端的实现更加困难(缓存、性能、安全性、.)。我发现GraphQL中缺少的一件事是输入联合( input,他们正在研究这个问题)。如果您需要处理变异中的复杂对象,最好是寻找其他的东西。
而使用OpenAPI规范设置几个端点则允许灵活性和自由度。工具也在迎头赶上。
另一方面,我不喜欢太多的自由。这就是使GraphQL的工具突出的原因。
两种方法都试一试,看看你喜欢什么。如果你不是单独工作,那么和其他团队使用相同的技术可能会有帮助吗?
https://stackoverflow.com/questions/73598763
复制相似问题