Support schema directives
dariuszkuc opened this issue · 2 comments
I want to suggest an idea and checked that ...
- ... to my best knowledge, my idea wouldn't break something for other users
- ... the documentation does not mention anything about my idea
- ... there are no open or closed issues that are related to my idea
Description
SchemaParser
currently does not process schema definitions which can include directive information.
Use Cases
Apollo Federation v2 relies on a schema @link
directive to link definitions from external specification to the local schema. Gateway requires this link information to determine whether Federation v2 features can be used or it has to fallback to the v1 logic.
extend schema @link(url: "https://specs.apollo.dev/federation/v2.0", import: ["@key", "@shareable"])
See https://github.com/apollographql/apollo-federation-subgraph-compatibility/ for example federation integration.
@dariuszkuc can you check if #763 resolved this?
@oryan-block
The issue is still reproducing in latest 13.1.1 version
E.g.
https://github.com/sanvikalx/schema-directives-support/blob/master/src/test/java/org/example/SchemaDirectivesSupportTest.java
@Test
void testIt() {
GraphQLSchema graphQLSchema = SchemaParser.newParser().schemaString("""
extend schema @link(url: "https://specs.apollo.dev/federation/v2.3",
import: ["@key", "@shareable", "@inaccessible"])
type Query {
fdrDiscovery: FdrDiscoveryResponse @shareable
}
type FdrDiscoveryResponse @key(fields: "dummyId") {
dummyId: String @inaccessible
hello: String
}
""")
.resolvers(new QueryResolverImpl())
.build()
.makeExecutableSchema();
Assertions.assertNotNull(graphQLSchema);
}
It was working in 13.0.1 but now it's broken.
So test will run success if switch to 13.0.1
https://github.com/sanvikalx/schema-directives-support/blob/master/pom.xml