我目前正在尝试测试1个服务的graphql端点,该端点最终将与阿波罗联邦/网关graphql服务器分开。该服务将扩展现有联合图中现有服务中的类型。
如果我想用阿波罗联合会和网关单独测试我的服务,是否有办法在我的graphql模式中仍然使用as
和@extends
的情况下做到这一点?当前,网关会抛出:@external
,这很有意义,因为没有类型可以扩展,但是我可以以某种方式忽略此验证吗?
答案 0 :(得分:0)
@xadm在评论中发布,您可以使用https://github.com/xolvio/federation-testing-tool实现此目的,从而解决了我的问题。
答案 1 :(得分:0)
您的问题看起来像您正在尝试进行开发,但是您给出的答案似乎是您正在专门进行测试。我不知道那是因为工具而导致的最终结果,还是那是您的实际问题,但这是我对从事开发工作的人们的回答:
如果您仅运行其中一项服务,则仍然可以对它进行查询,只需按照ApolloGateway的方式进行即可。假设您有一个人事服务和一个地方服务,人们可以访问许多地方:
人员服务
type Person @key(fields: "id") {
id: ID!
name: String
}
type Query {
person(id: ID): Person # Assuming this is the only entry-point
}
位置服务
type Place {
id: ID!
name: String
}
extend type Person @key(fields: "id") {
id: ID!
placesVisited: [Place]
}
现在,您可以对位置服务进行以下查询:
query ($_representations: [_Any!]!) {
_entities(representations:$_representations) {
... on Person {
id
placesVisited {
id
name
}
}
}
}
这是您的输入内容:
{
"_representations": [{
"__typename": "Person",
"id": "some-id-of-some-person"
}]
}