Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nautilus/gateway
A federated api gateway for graphql services. https://gateway.nautilus.dev/
https://github.com/nautilus/gateway
gateway graphql graphql-gateway schema-federation schema-stitching
Last synced: 3 months ago
JSON representation
A federated api gateway for graphql services. https://gateway.nautilus.dev/
- Host: GitHub
- URL: https://github.com/nautilus/gateway
- Owner: nautilus
- License: mit
- Created: 2018-12-30T02:28:14.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-21T22:16:18.000Z (5 months ago)
- Last Synced: 2024-08-22T07:35:39.505Z (5 months ago)
- Topics: gateway, graphql, graphql-gateway, schema-federation, schema-stitching
- Language: Go
- Homepage:
- Size: 711 KB
- Stars: 397
- Watchers: 20
- Forks: 48
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - nautilus/gateway - A federated api gateway for graphql services. https://gateway.nautilus.dev/ (Go)
- awesome-list - gateway
README
# nautilus/gateway ![CI Checks](https://github.com/nautilus/gateway/workflows/CI%20Checks/badge.svg?branch=master) [![Coverage Status](https://coveralls.io/repos/github/nautilus/gateway/badge.svg?branch=master)](https://coveralls.io/github/nautilus/gateway?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/nautilus/gateway)](https://goreportcard.com/report/github.com/nautilus/gateway) [![Go Reference](https://pkg.go.dev/badge/github.com/nautilus/gateway.svg)](https://pkg.go.dev/github.com/nautilus/gateway)
A library and standalone service that composes your GraphQL APIs into one endpoint.
For a guide to getting started read [this post](https://medium.com/@aaivazis/a-guide-to-schema-federation-part-1-995b639ac035). For full documentation visit the [gateway homepage](https://gateway.nautilus.dev).
## Running the Executable
The simplest way to run a gateway is to download an executable for your operating system
from the [latest release][latest] on GitHub and then run it directly on your machine:```bash
$ ./gateway start --port 4000 --services http://localhost:3000,http://localhost:3001
```**Note:** Instead of `./gateway`, use the file path to the release you downloaded.
macOS users should use the `darwin` release file.For more information on possible arguments to pass the executable, run `./gateway --help`.
[latest]: https://github.com/nautilus/gateway/releases/latest
## Build from source
Alternatively, install it with the `go` command to your Go bin and run it:
```bash
$ go install github.com/nautilus/gateway/cmd/gateway@latest
$ gateway start --port 4000 --services http://localhost:3000,http://localhost:3001
```This will start a server on port 4000 that wraps over the services
running at `http://localhost:3000` and `http://localhost:3001`.For more information on possible arguments to pass the executable, run `gateway --help`.
## Versioning
This project is built as a go module and follows the practices outlined in the [spec](https://github.com/golang/go/wiki/Modules). Please consider all APIs experimental and subject
to change until v1 has been released at which point semantic versioning will be strictly followed. Before
then, minor version bumps denote an API breaking change.Currently supports Go Modules using Go 1.16 and above.