#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