go-gql-starter

command module
v0.0.0-...-a1c7362 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2019 License: BSD-2-Clause Imports: 10 Imported by: 0

README

Go GraphQL API Boilerplate

Build Status Go Report Card

Stacks

Features

  • User Sign Up & Sign In
  • Change a Password, Profile

How to Run

Initialize DB
  1. Create a database
postgres=# CREATE DATABASE go;
  1. Create a user as owner of database
postgres=# CREATE USER go WITH ENCRYPTED PASSWORD 'go';

postgres=# ALTER DATABASE go OWNER TO go;
  1. Grant all privileges to user for the database
postgres=# GRANT ALL PRIVILEGES ON DATABASE go TO go;
  1. Configure the db in db.go
// ConnectDB : connecting DB
func ConnectDB() (*DB, error) {
	db, err := gorm.Open("postgres", "host=localhost port=5432 user=go dbname=go password=go sslmode=disable")

	if err != nil {
		panic(err)
	}

	return &DB{db}, nil
}

or with Docker

host address should be edited to host.docker.internal to connect a host interface.

// ConnectDB : connecting DB
func ConnectDB() (*DB, error) {
	db, err := gorm.Open("postgres", "host=host.docker.internal port=5432 user=go dbname=go password=go sslmode=disable")

	if err != nil {
		panic(err)
	}

	return &DB{db}, nil
}
Initial Migration
$ go run ./migrations/init.go

or with Docker

$ docker build -t go-graphql-api .
$ docker run --rm go-graphql-api migrate

This will generate the users table in the database as per the User Model declared in ./model/user.go

Run the server
$ go run server.go

or with Docker

$ docker run --rm -d -p 8080:8080 go-graphql-api
GraphQL Playground

Connect to http://localhost:8080

Authentication : JWT

You need to set the Http request headers Authorization: {JWT_token}

Usage

Checkout Wiki: View Wiki

Next to do

  • Sign-Up
  • Query the profile with implementing context.Context
  • Sign-In with JWT
  • Change the password
  • Change the profile
  • Merging *.graphql files to a schema with packr
  • Using Configuration file for DB & JWT secret_key
  • Using Auth0
  • Unautn query

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL