前言:我对GraphQL完全陌生,所以我只是想弄清楚使用它时的最佳实践是什么
所以我需要调用一个用Nestjs编写的GraphQL API(更具体地说,从Rails服务器)。有一个很好的gem graphql-client,它使Client
与GraphQL API通信。为了让它工作,它需要一个Schema
在初始化Client
之前。它还建议我们应该在**之前获取模式并将其转储到文件中。初始化Client
我还注意到,当我将GraphQL URL粘贴到postman时,它会预取模式。
一个快速的代码片段起作用了,但后来我发现我可以使用一个API gem(如HTTParty
)并使用正确的主体发出POST
请求,以便调用GraphQL API
我想:“也许我应该研究一下其他JS工具是如何与GraphQL一起工作的,因为Rails可能会有不同的行为”。然后我读了this article。简而言之,我们可以只使用一个API库(如axios
)向GraphQL服务器发出请求,而不需要或预取模式。
我的问题是:为什么我们需要在提出请求之前预取模式?这样做有什么好处?如果有什么文章我应该阅读,以便更好地了解这一点,请提供给我。
1条答案
按热度按时间ikfrs5lh1#
你永远不需要在运行时获取模式。然而,在客户端获取模式来定义 * 类型 * 是很有用的,这些类型与服务器在运行时请求数据时将要发送给你的类型相匹配。