Using GraphQL Schema
You can use the render apiproxy command to create an Apigee API proxy bundle using a template and a GraphQL schema as input.
While GraphQL schemas might not contain all the necessary details for a complete API proxy bundle, this command offers flexibility through the --set
and --set-string
parameters.
This works similar to how values are set in Helm charts.
How it works
- Start with Your Template
The template, your inputs, and the schema guide the generation of an intermediate YAML configuration.
- Access the Schema
Use
--set-graphql
to access a GraphQL schema text and AST during template rendering. - Inject Your Values
Use
--set
and--set-string
to provide missing values (like target URLs) for your template.
Examples
Check out the examples/templates/graphql directory for an example of building the intermediate YAML for a GraphQL API proxy.
Here is how you would use the render apiproxy command with this example:
Create bundle zip
apigee-go-gen render apiproxy \
--template ./examples/templates/graphql/apiproxy.yaml \
--set-graphql schema=./examples/graphql/resorts.graphql \
--set-string "api_name=resorts-api" \
--set-string "base_path=/resorts/graphql" \
--set-string "target_url=https://example.com/graphql" \
--include ./examples/templates/graphql/*.tmpl \
--output ./out/apiproxies/resorts.zip
Create bundle dir
apigee-go-gen render apiproxy \
--template ./examples/templates/graphql/apiproxy.yaml \
--set-graphql schema=./examples/graphql/resorts.graphql \
--set-string "api_name=resorts-api" \
--set-string "base_path=/resorts/graphql" \
--set-string "target_url=https://example.com/graphql" \
--include ./examples/templates/graphql/*.tmpl \
--output ./out/apiproxies/resorts.zip