有一个API平台服务,所有接口都通过API平台转发到实际的服务上,然后再把实际服务的结果返回给客户端,API平台的规范是所有实际服务的接口返回都要统一结构为
{
"code": 0,
"msg": "",
"data": {}
}
否则无法处理,现在使用influxdb提供的api,他的返回结构并不是API平台需要的结构,所以需要做一层代理转发请求并修改返回结果为API平台需要的结构。
采用openresty来实现这个需求,只需安装好openresty,然后编写一个配置文件即可实现。
实现配置如下:ngx_lua_restructure_influxdb_response.conf
upstream influxdb{
server 127.0.0.1:8086;
}
server {
listen 18086;
proxy_pass_request_headers off; # handle gziped capture
location / {
proxy_pass http://influxdb/query;
}
location /query {
add_header Content-Type 'application/json; charset=utf-8'; # make sure content-type is json
content_by_lua_block {
local method_map