All Projects → Soontao → Go Simple Api Gateway

Soontao / Go Simple Api Gateway

Licence: mit
[deprecated] simple api gateway written by golang

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Simple Api Gateway

couper
Couper is a lightweight API gateway designed to support developers in building and operating API-driven Web projects
Stars: ✭ 60 (-79.31%)
Mutual labels:  gateway
Azure-AKS-ApplicationGateway-WAF
No description or website provided.
Stars: ✭ 16 (-94.48%)
Mutual labels:  gateway
Manba
HTTP API Gateway
Stars: ✭ 3,000 (+934.48%)
Mutual labels:  gateway
dev-gateway
Local development cluster with "now" path aliases syntax support. Allows running multiple microservices as one solid server.
Stars: ✭ 32 (-88.97%)
Mutual labels:  gateway
dog
Full repository for the Dog gateway
Stars: ✭ 21 (-92.76%)
Mutual labels:  gateway
ship-gate
Use SpringWebFlux,Netty and Nacos to build high performance,responsive API gateways.
Stars: ✭ 138 (-52.41%)
Mutual labels:  gateway
lightify-binary-protocol
Documentation of the OSRAM Lightify Binary Protocol for communication between Lightify Gateway and applications
Stars: ✭ 26 (-91.03%)
Mutual labels:  gateway
Fw Spring Cloud
SpringCloud构建实战、从入门到高级,包含eureka、zuul、gateway、feign、ribbon、hystrix、mq、turbine、nacos、elk、consul、zookeeper、rocketmq、kafka、分布式事务(RocketMq、LCN、Seata)、分库分表(Sharding-JDBC)、分布式锁(Redis、Guava)、jwt、SkyWalking、Zipkin、bootadmin等使用案例
Stars: ✭ 276 (-4.83%)
Mutual labels:  gateway
gateway-mt
Storj edge services (including multi-tenant, S3 compatible server to interact with the Storj network)
Stars: ✭ 18 (-93.79%)
Mutual labels:  gateway
Vedetta
OpenBSD Router Boilerplate
Stars: ✭ 260 (-10.34%)
Mutual labels:  gateway
NMEA2000WifiGateway-with-ESP32
This repository shows how to build a NMEA2000 WiFi Gateway with voltage and temperature alarms.
Stars: ✭ 38 (-86.9%)
Mutual labels:  gateway
scriptbox
Script box is a full VAS application for demonstrate kannel.js, shorty and smpp usage
Stars: ✭ 19 (-93.45%)
Mutual labels:  gateway
fiber-boilerplate
This is the go boilerplate on the top of fiber web framework. With simple setup you can use many features out of the box
Stars: ✭ 184 (-36.55%)
Mutual labels:  casbin
meshquitto
A simple Arduino project, which aims to provide a gateway between a mesh network of ESP8266's and a remote MQTT broker.
Stars: ✭ 37 (-87.24%)
Mutual labels:  gateway
Saluki
Spring Boot starter module for gRPC framework.
Stars: ✭ 267 (-7.93%)
Mutual labels:  gateway
php-ipg-ir
IPG (Internet Payment Gateway) manager for Iran Banking System
Stars: ✭ 26 (-91.03%)
Mutual labels:  gateway
hanzo-cloud
SpringCloud(Hoxton.SR5) + SpringBoot(2.3.0.RELEASE)的 SaaS型微服务后端脚手架。授权中心开发完毕。文档地址:https://www.kancloud.cn/hanzo/hanzo
Stars: ✭ 15 (-94.83%)
Mutual labels:  gateway
Armeria
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
Stars: ✭ 3,392 (+1069.66%)
Mutual labels:  gateway
Infini Gateway
INFINI-GATEWAY(极限网关), a high performance and lightweight gateway written in golang, for elasticsearch and his friends.
Stars: ✭ 272 (-6.21%)
Mutual labels:  gateway
Ironinfoweapp
铜陵回归物资有限公司支持, 钢材信息小程序(基于uni-app), 后台账密: tour, tour520
Stars: ✭ 257 (-11.38%)
Mutual labels:  casbin

GO-SIMPLE-API-GATEWAY

status

A simple API gateway written by golang.

Support for authenticate and authorization, and web applications will be protected after the gateway.

in development now.

documents will be wrote later.

ARCH

arch

CONFIGURATION

You could use cli option or environment varibles to config your api gateway

./go-simple-api-gateway --help
Options:

  -h, --help                                display help information
  -c, --*conn[=$GATEWAY_CONN_STR]          *mysql connection str
  -l, --*listen[=$GATEWAY_LS]              *gateway listen host and port
  -r, --*resource[=$GATEWAY_RESOURCE_URL]  *gateway resource url

  • -c --conn GATEWAY_CONN_STR, mysql connection string, format is user:[email protected](domain:port)/dbname

  • -l --listen GATEWAY_LS, gateway listen addr, format is host:port, example: 0.0.0.0:1329

  • -r --resource GATEWAY_RESOURCE_URL, gateway protect target, the resource server, could be a api server, format is http://host:port

DOCKER

you could find docker image from here

example:

docker run -d --restart=always -p 11329:1329 -e GATEWAY_CONN_STR='user:[email protected](mysql:3306)/db_name' -e GATEWAY_LS=':1329' -e GATEWAY_RESOURCE_URL='http://api:1323' --link mariadb:mysql --link citi_api:api --name citi_gateway theosun/go-simple-api-gateway

DOWNLOAD

You could download the latest build binaries from here

APIs

payload model

use /_/auth/* apis to authenticate, and use /_/gateway/* apis to authorization

authenticate model:


{
  "username":"",
  "password":"",
  "new_password":""
}


policy model:

{
  "user":"",
  "path":"",
  "method":""
}

user is a user or a role name. method can be *


userrole model:


{
  "user":"",
  "role":""
}

api list


[
  {
    "method": "POST",
    "path": "/_/auth/api/updatepassword",
    "name": "Passwrod Update"
  },
  {
    "method": "POST",
    "path": "/_/auth/api/auth",
    "name": "User Auth"
  },
  {
    "method": "POST",
    "path": "/_/auth/api/register",
    "name": "Register New User"
  },
  {
    "method": "DELETE",
    "path": "/_/gateway/api/role/",
    "name": "Remove Role From User"
  },
  {
    "method": "GET",
    "path": "/_/gateway/api/role/users",
    "name": "Get Users of a Role"
  },
  {
    "method": "GET",
    "path": "/_/gateway/api/user/role",
    "name": "Get Roles of a User"
  },
  {
    "method": "GET",
    "path": "/_/gateway/api/policy/",
    "name": "Get All Policies"
  },
  {
    "method": "PUT",
    "path": "/_/gateway/api/role/",
    "name": "Add Role To User"
  },
  {
    "method": "POST",
    "path": "/_/gateway/api/policy/enforce",
    "name": "Find Some Authority"
  },
  {
    "method": "GET",
    "path": "/_/gateway/api/policy/group",
    "name": "Get Group Policies"
  },
  {
    "method": "DELETE",
    "path": "/_/gateway/api/policy/",
    "name": "Remove Authority"
  },
  {
    "method": "PUT",
    "path": "/_/gateway/api/policy/",
    "name": "Add Policy"
  }
]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].