码云 Gitee IDE 全新上线——支持 Git 管理的轻量在线编码环境
0 Watch 24 Star 52 Fork 12

北京亿库网络科技有限公司 / 微信API网关NodeJSMIT

Sign up for free
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
微信API网关,通过使用微信公众号、服务注册&发现、反向代理等等插件的组合,来有效解决来自不同客户端和服务器请求的统一接入、分发、监控等问题
liamjung authored fix
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md 4.21 KB

微信API网关

一、功能说明

本项目是基于koa2框架实现的API网关,使用koa2框架的中间件机制提供插件功能。

通过使用微信公众号、服务注册&发现、反向代理等等插件的组合,来有效解决来自不同客户端和服务器请求的统一接入、分发、监控等问题。

支持自定义插件。

Image text


二、环境说明

NodeJS v8.x.x


三、插件说明

1. 原理说明

接收请求后,通过管道机制,把请求、响应、会话、日志等对象封装成管道对象,逐一传给每个插件,每个插件都是单一职责的,一项功能由多个插件的组合来实现,并且可以调整插件的组合来实现不同的功能,例如,微信网关插件只负责微信消息格式的转换,配合转移请求反向代理插件,完成分发请求至不同服务器的功能

下图为管道机制原理图,其中必须配置和启用反向代理(proxy)插件

Image text

2. 使用说明

参考API网关插件库


四、应用配置说明

复制app_config.js.example为app_config.js,保存到项目根目录中

example中已配置好的插件如下:

具体配置参数如下:

port 应用端口
log
rootPath:日志根路径,可自定义,如,/xxx/xxx/wechat_api_gateway

日志追踪id键,可自定义,下面三个取值为Spring Cloud Sleuth的默认值
traceIdKey:x-b3-traceid,
spanIdKey:x-b3-spanid,
parentSpanIdKey:x-b3-parentspanid
runningMode 运行模式,单机模式(standalone)、集群模式(cluster)
mpConfigName 公众号配置名称,单机模式时,为配置文件名,集群模式时,为redis key
redis
redis配置,单机模式时,忽略,集群模式时,必须配置

ip: IP地址
port:端口
pass:密码
plugins
插件配置列表,配置顺序决定触发顺序

path:插件路径
config_path:插件配置目录
enable:是否启用

Comments ( 1 )

You need to Sign in for post a comment

Help Search