abdusshakurayon / graphql-orm

Golang GraphQL API generator using gqlgen and gorm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

graphql-orm

Build Status

Golang GraphQL API generator using gqlgen and gorm

Installation

Before you start, please make sure you have goimports installed:

go get golang.org/x/tools/cmd/goimports

NOTE: Make sure you have Go installed on your system.

  1. Create new project repository
  2. run go run github.com/novacloudcz/graphql-orm init
  3. follow initialization instruction (creating makefile is suggested)
  4. open create model.graphql and create your custom model schema
  5. each time you change model, run make generate or go run github.com/novacloudcz/graphql-orm to recreate generated source codes

NOTE: graphql-orm requires Go modules for installation. If you are running in $GOPATH, make sure you are running init command with GO111MODULE=on

Running locally

For running locally you can use:

make run

or without makefile:

DATABASE_URL=sqlite3://test.db PORT=8080 go run *.go

Example

You can find example project at graphql-orm-example repo

Schema preview in Voyager

GraphQL Voyager is very nice tool for previewing your GraphQL Schema, you can run it locally by:

make voyager

or without makefile:

docker run --rm -v `pwd`/gen/schema.graphql:/app/schema.graphql -p 8080:80 graphql/voyager

...after voyager starts up go to https://localhost:8080

All generated stuff is stored in ./gen/ folder.

Building docker image

If you generated Dockerfile initialization it's as easy as running:

docker build -t {IMAGE_NAME} .

If you want to create your own docker image, you can check the example repository for generated Dockerfile: https://github.com/novacloudcz/graphql-orm-example/blob/master/Dockerfile

What's this library for?

While following microservices design patterns we ended up with many "model services". gqlgen is perfect tool, but implementing resolvers in every service is getting more and more cumbersome. Using this tool we only have to update model.graphql and all resolvers get generated automatically.

About

Golang GraphQL API generator using gqlgen and gorm

License:MIT License


Languages

Language:Go 71.8%Language:Gherkin 26.9%Language:Makefile 0.9%Language:Dockerfile 0.4%