#EroGate ---- Ero的網關入口 使用了Echo框架
詳細文檔地址請訪問:https://echo.labstack.com/
然而本Gateway使用了另外一套框架,详情请访问协议
- HTTP错误信息还未完善
編譯:
./install.sh || ./install.bat第一次运行,必须使用命令gateway setup进行安装。这个命令将会在目录下生成一个conf.yaml总配置文件。
该文件内容如下:
base:
secret: this is a secret
port: 80
API:
login: /login
register: /register其中,port是当前gateway监听的端口。login是后台UserAPI的鉴权地址。
secret是用于token生成,以及gateway判断后台UserAPI鉴权成功的字段。UserAPI鉴权成功后,必须要返回该值内容,gateway才会签发令牌
register是用于添加热路由的API接口
使用gateway add命令,会在/conf.d下面動態添加yaml文件。這個作爲路由使用,詳細結構如下:
route: /website
backend: https://localhost:8080/可以使用route标签和backend标签手动指明内容,同时还需要一个额外的标签name作为文件名
例如:
gateway add --name config1 --route /site --route http://localhost/之后将会生成一个/conf.d/config1.yaml,如果程序在运行则/site将会添加到处理事件
在conf.yaml==>API中设置了register字段后,即可热注册路由
请求包例子如下
{
"secret": "this is a secret",
"route": {
"route": "/url",
"backend": "http://backend.com/",
"auth": false
}
}auth代表不登录即可访问。
使用gateway run即可运行,但是前提得保证先执行了gateway setup
使用gateway test命令,无条件的签发令牌或者解析令牌。
签发令牌需要username字段和uid字段,例如
gateway test --username aaa --uid 1将会返回令牌:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1NTczMzE5MjEsImlkIjoxLCJuYmYiOjE1NTczMzE5MjEsInVzZXJuYW1lIjoiYWFhIn0.ZphjRwwfcVrvKevwkA1FESMGpWjZbaECUkqInlEKZNc如果需要解析令牌,则需要使用token字段
gateway test --token eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1NTczMzE5MjEsImlkIjoxLCJuYmYiOjE1NTczMzE5MjEsInVzZXJuYW1lIjoiYWFhIn0.ZphjRwwfcVrvKevwkA1FESMGpWjZbaECUkqInlEKZNc将会返回
name: aa uid: 1