我想在客户端的浏览器中使用apollo-server
。那可能吗?让我解释一下为什么我认为会很棒。
我希望我的React App具有统一的抽象数据API。我希望这个API是GraphQL(不是Redux,不是自定义钩子/上下文,仅是useQuery
)。我很乐意做这样的事情:
- 创建一个“客户端架构”,实际上是服务器架构和本地状态的结合。
- 在本地编写解析器。这是关键。他们可以简单地默认为标准API调用,但也可以使用本地状态。或两者兼有。
我知道在apollo-client
中有局部状态的可能性(此处描述为:https://www.apollographql.com/docs/react/data/local-state/)。但是此解决方案缺少两件事:
- 我不想在每个本地查询或变异中都使用
@client
标志。这没有道理,不是抽象的API。如果UI调用query { products }
,则它不希望知道它是本地的还是需要某些服务器操作。如果它是本地的,它将总是返回非空的data
,而loading
将始终等于true
。多亏了这一点,我可以构建面向未来的UI,如果我将实现的某些部分从客户端转移到服务器,或者反过来,则无需更改。 - 我无法覆盖服务器架构。因此,如果服务器模式中有一个
query { products }
,我将无法在本地覆盖它以使其做其他事情(例如,对本地状态进行一些处理)。
我很想听听我的想法是否有意义以及是否有可能实现。