Consume in other gateways
If you don’t use Hive Gateway, but still want to use Mesh Compose to convert non-federated sources to a federated subgraph. You can still do it but it has some limitations, you need to generate the subgraph, and serve the subgraph with Hive Gateway But if you use Hive Gateway, you don’t need to worry about this, then you can use the supergraph directly without having multiple servers.
That’s because other gateways are not aware of Mesh Compose’s additional directives to handle the non-federated sources.
This means you can use non-federated sources in any Federation compliant gateway such as Apollo Gateway, Apollo Router or Cosmo Router.
Generate the subgraph
First, you need to generate the subgraph with Mesh Compose, and then serve the subgraph with Hive Gateway.
import { defineConfig } from '@graphql-mesh/compose-cli'
import { loadOpenAPISubgraph } from '@omnigraph/openapi'
export const composeConfig = defineConfig({
subgraphs: [
{
sourceHandler: loadOpenAPISubgraph('Wiki', {
source: 'https://api.apis.guru/v2/specs/wikimedia.org/1.0.0/swagger.yaml'
}),
transforms: [
/**.. **/
]
}
]
})
Then you can run the following command to generate the subgraph:
npx mesh-compose --subgraph Wiki > wiki-subgraph.graphql
You can also use this schema with any schema registry such as Hive or GraphOS.
For example, with GraphQL Hive CLI you can publish this subgraph with the following command:
hive schema:publish \
--registry.accessToken YOUR_TOKEN_HERE \
--service="reviews" \
--url="http://fake.com/reviews/graphql" \
--author "Me" \
--commit "Second" \
wiki-subgraph.graphql
Serve the subgraph
Then you can serve the subgraph with Hive Gateway with the following command;
npx hive-gateway subgraph wiki-subgraph.graphql
Then you can use the supergraph in any Federation compliant gateway such as Apollo Gateway, Apollo Router or Cosmo Router.