xlibb / graphql-federation-gateway Goto Github PK
View Code? Open in Web Editor NEWThis repository contains the source code of the Ballerina GraphQL federation gateway.
License: Apache License 2.0
This repository contains the source code of the Ballerina GraphQL federation gateway.
License: Apache License 2.0
Steps to use the gateway
section.Do we need to release a .bat
script file also? Current README only has instructions using the .sh
file.
Or maybe we can stop using script files and just release the jar
file and give the following instructions,
bal run graphql_federation_gateway.jar -CsupergraphPath="supergraph.graphql" -CoutputPath="service" -Cport="9000"
cd service
bal run
WDYT?
Consider the following schema with @deprecated
on the products: [Product!]!
field on the Query
type,
schema
@link(url: "https://specs.apollo.dev/link/v1.0")
@link(url: "https://specs.apollo.dev/join/v0.3", for: EXECUTION)
{
query: Query
}
directive @join__enumValue(graph: join__Graph!) repeatable on ENUM_VALUE
directive @join__field(graph: join__Graph, requires: join__FieldSet, provides: join__FieldSet, type: String, external: Boolean, override: String, usedOverridden: Boolean) repeatable on FIELD_DEFINITION | INPUT_FIELD_DEFINITION
directive @join__graph(name: String!, url: String!) on ENUM_VALUE
directive @join__implements(graph: join__Graph!, interface: String!) repeatable on OBJECT | INTERFACE
directive @join__type(graph: join__Graph!, key: join__FieldSet, extension: Boolean! = false, resolvable: Boolean! = true, isInterfaceObject: Boolean! = false) repeatable on OBJECT | INTERFACE | UNION | ENUM | INPUT_OBJECT | SCALAR
directive @join__unionMember(graph: join__Graph!, member: String!) repeatable on UNION
directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA
scalar join__FieldSet
enum join__Graph {
PRODUCTS @join__graph(name: "products", url: "http://localhost:9091")
}
scalar link__Import
enum link__Purpose {
"""
`SECURITY` features provide metadata necessary to securely resolve fields.
"""
SECURITY
"""
`EXECUTION` features provide metadata necessary for operation execution.
"""
EXECUTION
}
type Product
@join__type(graph: PRODUCTS, key: "id")
{
id: ID!
name: String!
description: String!
price: Float!
}
type Query
@join__type(graph: PRODUCTS)
{
products: [Product!]! @deprecated
product(id: ID!): Product
}
Then running the following command,
bal run .\graphql_federation_gateway.jar -CsupergraphPath="supergraphs/0.1.3.graphql" -CoutputPath="generated_gateway"
Results in,
error: java.lang.NullPointerException {"message":"Cannot invoke "graphql.schema.GraphQLAppliedDirectiveArgument.getArgumentValue()" because the return value of "graphql.schema.GraphQLAppliedDirective.getArgument(String)" is null"}
at xlibb.graphql_federation_gateway.0:generateGateway(main.bal:25)
xlibb.graphql_federation_gateway.0:main(main.bal:16)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.