This repo is deprecated. Please see graphql-gateway-java
Graph Quilt Gateway exposes data from various graph microservices using a single unified GraphQL schema. These microservices can be dynamically
registered with the Gateway using the /register
endpoint. It uses graphql orchestrator library for federating schemas from
various data providers.
Top Highlights include
- Dynamic registration so that the gateway is loosely coupled with the provider development lifecycle.
- Registering REST endpoints using the @adapter directive and Service DSL
- Attribute Based Access Control using the graphql-authorization-java library.
Make sure you have the following installed on your machine
- jdk 1.8
- maven
- docker
- awscli
When running the application locally, localstack is used to mock AWS S3. Follow this steps to start the application.
-
Build the project
mvn clean install
-
Run aws configure. Enter any value to the prompts presented. Since localstack is used, a real AWS credential is not needed.
aws configure
-
Start Docker daemon if not running.
-
Start the local registry. This starts a localstack docker container.
./local_registry/start.sh
-
Set up the local registry. This will initialize the registry with example service providers in
local_registry
folder../local_registry/setup.sh --empty-registry
-
Start the application. Once started, it listens on port 7000
./run.sh
OR
Run the class
GraphqlGatewayApplication
as Spring Application using IntelliJ. Set the active profile as local.
No need to restart the application when new you register a new provider service.
The docker compose will start both localstack and graphql gateway. To start, run the command
$ docker compose -f docker-compose-local-registry.yml up
This will start with the example service providers from ./local_registry/dev/registrations/1.0.0. However, there's no actual backend service yet so if you query, you'll get "Connection Refused error.". We will add these example services as part of docker compose in the near future so that and end to end call can be made.
You should see the Spring Boot Logo and a message "Started GraphQLGatewayApplication ..."
- Navigate to http://localhost:7000/graphiql
- Steps to enable lombok in IntelliJ
- IntelliJ style guide is available in
src/format/intellij-styleguide.xml
.
Please see our contribution guide