wgc router plugin init
Theinit
command scaffolds a new gRPC router plugin project with all the necessary files and directory structure.
Usage
Arguments
Argument | Description |
---|---|
name | Name of the plugin |
Options
Option | Description | Default |
---|---|---|
-p, --project <project> | Project name. When provided, a minimal router project is bootstrapped and the plugin is created at <project>/<name> . | (none) |
-d, --directory <directory> | Directory to create the plugin or project in | . (current directory) |
-l, --language <language> | Programming language to use for the plugin (currently only go is supported) | go |
Description
This command creates a new plugin directory with the specified name and scaffolds the basic plugin structure, including:- A GraphQL schema file (
src/schema.graphql
) - Go implementation files (
src/main.go
,src/main_test.go
) - Generated mapping and protocol files (
generated/mapping.json
,generated/service.proto
,generated/service.proto.lock.json
) - Go module configuration (
go.mod
) - Makefile and Dockerfile (
Makefile
,Dockerfile
) - Documentation (
README.md
)
--project
is provided, a minimal router project is created in the project directory with:
- Router configuration files in the project root (
config.yaml
,graph.yaml
) - Project-level files (
README.md
,Makefile
,.gitignore
) - The plugin located at
<project>/<name>
--project
and use -d/--directory
to choose where the plugin directory should be created.
Directory Structure
With --project
Without --project
The plugin is created directly under the chosen directory:
Examples
Basic usage
Create a new project and plugin
Specify a custom directory
Next Steps
After initializing your plugin, you should:- Customize the GraphQL schema in
src/schema.graphql
- Generate code with
wgc router plugin generate
ormake generate
- Implement your resolvers in
src/main.go
- Implement your tests in
src/main_test.go
and run them withmake test
- Build your plugin with
make build