我有一个例子,其中我有一个接口
,它在graphql中定义了不同的类型
实现。我可能无法共享确切的代码。但情况似乎是这样的:
interface Character {
name: String!
}
type Human implements Character {
name: String!
friends: [Character]
}
type Droid implements Character {
name: String!
material: String
}
有一个查询返回人类
或Droid
类型作为响应。
响应可能包含以下内容:
{
name: 'Human_01',
friends: []
__typename: 'Human'
}
或
{
name: 'Droid_01',
material: 'Aluminium'
__typename: 'Droid'
}
我在客户端使用Apollo Client 3来查询数据,并有如下片段:
fragment Human on Human {
friends
}
fragment Droid on Droid {
material
}
fragment Character on Character {
name
...Human
...Droid
}
我查询的字符
数据为:
character {
...Character
}
由于这是接口
的情况,正如Apollo client 3文档中所定义的,我们需要使用可能类型
,以便在这种情况下匹配片段。出于缓存目的,我在MemoryCache中定义为:
new InMemoryCache({ possibleTypes: { Character: ['Human', 'Droid'] } })
Character
实现的主键字段是name
字段,我需要使用它来将其值存储在缓存中。
在Apollo client 3中,提到使用TypePolicys
来定义类型的keyFields
。
因此,我需要询问是否应该为这两种类型实现定义类型策略,在这两种情况下都将keyFields
指定为name
,例如:
new InMemoryCache({
possibleTypes: { Character: ['Human', 'Droid'] },
typePolicies: { Human: { keyFields: ['name'] }, Droid: { keyFields: ['name'] } }
});
在我的例子中,我只提供了2个这样的类型实现,但是可以有n
个类型实现对应于Character
接口。因此,在这种情况下,我将需要将keyFields
定义为所有n
类型实现的typePolicies
中的name
。
那么,有没有更好的方法来实现这些类型的接口
实现?
任何帮助都将不胜感激。谢谢
类型和字段策略的继承将出现在@apollo/client
,v3的下一个次要版本中。3.
您现在可以通过安装@apollo来试用它/client@3.3.0-贝塔。5
。
了解v3的最新进展。3释放,请参阅此拉动请求。
我想知道以下问题的答案: 1)如果Ignite服务器重新启动,我需要重新启动客户端(web应用程序)。是否有任何方法可以在服务器重新启动时重新连接到服务器。我知道当服务器重新启动时,它分配了一个不同的ID,因此当前现有的连接变得过时。是否有方法克服这个问题,如果是的话,哪一个版本的Ignite支持这个功能。目前我使用1.7版本 3)如果我有一个大对象要缓存,我发现序列化和反序列化在Ignite中需
我有一个示例Spring启动应用程序来运行图形QL服务器,具有作为客户端,我的pom有以下依赖项: 当我尝试从客户端连接时,出现以下错误: 狩猎决议好心建议。 我还有几个问题: 我应该使用SimpleGraphQLHttpServlet将请求路由到endpoint吗 我正在React UI上使用apollo client,那么它是强制使用apollo server还是spring boot可以工作
我正在使用Quarkus中的MicroProfile REST客户端,想知道如何对自定义客户端接口进行单元测试? 示例服务: 是否可以编写包含此功能的单元测试?例如。我想测试请求主体是否得到了正确的处理,是否包含了正确的JSON(特别是因为我遇到了JVM和本机映像模式之间行为不同的问题)。 REST服务器资源可以很容易地用REST保证测试,但是我没有发现REST客户机接口有类似的情况。 有什么建议
问题内容: 我正在寻找GraphQL 的Java 客户端 库。两者均用于Java中的服务器到服务器通信。没有android,没有javascript …只是java。Apollo是最接近的答案,似乎仅适用于Android,而不适用于纯Java应用程序。有很多关于用Java构建服务器的例子,没有关于客户端的例子。任何想法?谢谢! 问题答案: 有几个可用的客户,都采用不同的方法。 Apollo And
我做了一个简单的项目来测试 EJB3 实现。 使用maven我在项目中创建了3个模块,分别是“MyEjb”EJB,“MyWeb”这场战争,“MyWeb2”另一场战争。战争模块是EJB的客户端。 问题是,当我部署EAR时,控制台显示有3个EJB上下文,每个模块创建一个。模块MyEjb的EJB上下文不在wars模块之间共享,每个模块都从自己的MyEjb依赖项中获取数据。 我必须在一个单独的JAR中创建
gRPC客户端流媒体/双向流媒体是如何使用HTTP/2实现的 服务器流媒体是有意义的,因为它可以利用服务器推送来发送对请求的多个响应,但我不清楚它如何像通过websocket那样通过HTTP/2进行双向消息传递。