Gohan is an API Gateway Server written by Go that makes it easy for developers to create and maintain REST-style API
Go JavaScript CSS Shell Python Makefile
Clone or download
p-kozlowski Merge pull request #671 from cloudwan/context_trace_id
Print trace ID in request logs & transaction logs
Latest commit d547793 Jul 19, 2018
Permalink
Failed to load latest commit information.
.circleci Remove Deploy From CircleCI Jul 17, 2018
.github Add CODEOWNERS file May 10, 2018
cli Review remarks Jul 19, 2018
cloud fix keystone v3 reauth Jul 5, 2018
converter added schema names to converter Feb 5, 2018
db Review remarks Jul 19, 2018
docs Minor fix for policy Doc Jul 13, 2018
etc Keystone authorization cache Nov 9, 2017
examples add delete id Jan 25, 2018
extension Review remarks Jul 19, 2018
hooks first commit Oct 24, 2015
job Add filter to fetch Jan 25, 2018
log Log trace_id in middleware and transaction Jul 13, 2018
metrics update vendor management Jun 26, 2018
packager Support graceful shutdown and restart May 3, 2016
public/webui Bumpup webui to 1.19.2 Apr 21, 2017
schema BL-155 Tenant isolation via policy Jul 13, 2018
server Review remarks Jul 19, 2018
singleton ESIESI-11839 Gohan sometimes crashes when starting parallel tests Mar 23, 2017
sync Revert "Revert "[CW-316] Fixed validation for Go resources"" Jun 29, 2018
tests BL-155 Tenant isolation via policy Jul 13, 2018
tools Remove windows from crosscompile target Jun 29, 2018
util Log trace_id in middleware and transaction Jul 13, 2018
vendor Bump up pongo2 Jul 11, 2018
version Run go fmt Oct 27, 2017
.gitignore Golang extensions based on golang plugins Sep 6, 2017
.pkgr.yml Set build version in package Apr 19, 2016
AUTHORS Updated authors file & READ ME Dec 22, 2015
Dockerfile Upgrade golang toolchain to 1.9 stable Aug 25, 2017
Gopkg.lock Bump up pongo2 Jul 11, 2018
Gopkg.toml Bump up pongo2 Jul 11, 2018
LICENSE first commit Oct 24, 2015
Makefile Run go fmt Oct 27, 2017
Procfile first commit Oct 24, 2015
README.md Change Doc Link URL to cloudwandoc Mar 9, 2018
SUMMARY.md fix markdown issue Oct 11, 2016
app.json Add test dependencies for vendoring Mar 28, 2016
benchmark.sh first commit Oct 24, 2015
main.go Extended build time information is embedded into binary and logged du… Oct 6, 2017
run_test.sh Golang extensions based on golang plugins Sep 6, 2017

README.md

Gohan : API gateway server

Join the chat at https://gitter.im/cloudwan/gohan Coverage Status Circle CI Go Report Card

Gohan is an API Gateway Server written by Go that makes it easy for developers to create and maintain REST-style API. An API Gateway Server has a benefit consolidating various API operations such as authentication, authorization based on policies, logging and input validation on a single place on top of so-called microservice architecture.

Gohan also makes transactional operations, involving multiple micro services, easy to operate. An approach Gohan using is quite simple. Persistent REST API Resources in the RDBMS using transaction, then sync resource status with backend microservices using etcd or MySQL binlog API. Using well-proven RDBMs transaction, we can protect correctness of resources. A strategy let backend microservices sync with correct resource data in the RDBMS makes entire system fault-torrent from various RPC failures. Note that Developers should design _ backend microservices idempotent manner, to handle the cases the same RPC invoked multiple times.

see [Pet Store Example] (./etc/example_schema.yaml)

GoDoc

Documentation

Gitbook