Gohan is an API Gateway Server written by Go that makes it easy for developers to create and maintain REST-style API
Clone or download
Latest commit 027f855 Sep 18, 2018
Permalink
Failed to load latest commit information.
.circleci Remove Deploy From CircleCI Jul 17, 2018
.github Add CODEOWNERS file May 10, 2018
cli Removed Gohanscript Jul 20, 2018
cloud Gohan Policy support for Domain scoped tokens Sep 17, 2018
converter Gohan Policy support for Domain scoped tokens Sep 17, 2018
db Gohan Policy support for Domain scoped tokens Sep 17, 2018
docs Fix typo in docs Sep 3, 2018
etc Gohan Policy support for Domain scoped tokens Sep 17, 2018
examples Remove legacy go extensions Jul 20, 2018
extension Gohan Policy support for Domain scoped tokens Sep 17, 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 Gohan Policy support for Domain scoped tokens Sep 17, 2018
server Gohan Policy support for Domain scoped tokens Sep 17, 2018
singleton ESIESI-11839 Gohan sometimes crashes when starting parallel tests Mar 23, 2017
sync ETCDv2 removed Jul 20, 2018
tests Gohan Policy support for Domain scoped tokens Sep 17, 2018
tools Remove windows from crosscompile target Jun 29, 2018
util Gohan Policy support for Domain scoped tokens Sep 17, 2018
vendor goimports run automatically on vendor Jul 20, 2018
version Run go fmt Oct 27, 2017
.gitignore Removed Gohanscript Jul 20, 2018
.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 Removed unneeded dependencies Jul 20, 2018
Gopkg.toml Removed unneeded dependencies Jul 20, 2018
LICENSE first commit Oct 24, 2015
Makefile Remove legacy go extensions Jul 20, 2018
Procfile first commit Oct 24, 2015
README.md Documentation for legacy features Jul 23, 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