Gohan is an API Gateway Server written by Go that makes it easy for developers to create and maintain REST-style API
JavaScript Go CSS Other
Latest commit 08dc72e Jan 20, 2017 @nati nati committed on GitHub Merge pull request #355 from przemyslaw-dobrowolski-cl/fixed_log_msg_…
…resource_filter

Fixed log message so that now it gives a meaningful information
Permalink
Failed to load latest commit information.
cli Bumpup webui for 1.16.2 Nov 23, 2016
cloud Fix lint script Oct 7, 2016
db Merge branch 'master' into fix_double_foreign_key Jan 18, 2017
docs add support for gohan_sync_fetch and gohan_sync_watch builtins Dec 19, 2016
etc Add sync_plain and sync_property Dec 8, 2016
examples Add etcdv3 support to sync Dec 2, 2016
extension Merge branch 'master' into db_improvements Jan 18, 2017
hooks first commit Oct 24, 2015
job Implement job queue Apr 8, 2016
log first commit Oct 24, 2015
packager Support graceful shutdown and restart May 3, 2016
public/webui Bumpup webui for 1.16.2 Nov 23, 2016
schema Add sync_plain and sync_property Dec 8, 2016
server Merge branch 'master' into fixed_log_msg_resource_filter Jan 19, 2017
sync Add 'revision' field to event structure returned from watch Jan 5, 2017
tests add support for gohan_sync_fetch and gohan_sync_watch builtins Dec 19, 2016
tools Always update dev tools Jan 16, 2017
util Add sync_plain and sync_property Dec 8, 2016
vendor Update go-sqlite3 to a recent version Jan 18, 2017
.gitignore Make example Go extension work again Oct 12, 2016
.pkgr.yml Set build version in package Apr 19, 2016
AUTHORS Updated authors file & READ ME Dec 22, 2015
Dockerfile Update readme & docs Mar 31, 2016
LICENSE first commit Oct 24, 2015
Makefile Implement job queue Apr 8, 2016
Procfile first commit Oct 24, 2015
README.md Added gitbook link Oct 11, 2016
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
circle.yml Add etcdv3 support to sync Dec 2, 2016
main.go Fix build versioning Apr 5, 2016
run_test.sh Add etcdv3 support to sync Dec 2, 2016

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

GoDoc

Documentation

Gitbook