当前位置:   article > 正文

更新 | Apinto 网关 V0.15 版本发布!_apinto nacos

apinto nacos

该插件支持对后端服务返回的响应信息进行过滤,包括响应头部、响应体。过滤的响应体字段或响应头将会被移除,不会返回给客户端,从而避免敏感信息的泄漏。

若此时上游服务返回的响应体为:

  1. {
  2. "code":0,
  3. "data":{
  4. "valid":true,
  5. "scoreMsg":"系统判断为同一人",
  6. "score":0.81,
  7. "score2":0.81,
  8. "incorrect":100,
  9. "message":"比对成功",
  10. "requestId":"d022123ca86945fbb6562a8c90a416f1"
  11. },
  12. "message":"success"
  13. }

使用响应过滤插件过滤响应体字段 $.data.requestId,此时配置为:

  1. {
  2. "body_filter": [
  3. "$.data.requestId"
  4. ],
  5. "header_filter": []
  6. }

返回客户端的响应体为:

  1. {
  2. "code":0,
  3. "data":{
  4. "valid":true,
  5. "scoreMsg":"系统判断为同一人",
  6. "score":0.81,
  7. "score2":0.81,
  8. "incorrect":100,
  9. "message":"比对成功"
  10. },
  11. "message":"success"
  12. }

图片

当API绑定该插件,请求将不会发送给上游服务,直接返回插件配置的响应内容。

该插件可以适用于以下场景:

  • 在系统升级过程中中可以使用该插件返回特定静态响应内容;

  • 返回静态文件内容,如 HTML 页面、JS 脚本等,减少与后端服务的交互;

  • API 或页面地址发生迁移,通过该插件将请求重定向到新 API 或新页面;

  • ......

该插件支持引用系统变量,引用格式为:$系统变量字段,如 $request_uri

示例插件配置如下:

  1. {
  2. "body":"",
  3. "content_type":"application/json",
  4. "headers":[
  5. {
  6. "key":"location",
  7. "value":[
  8. "https://www.baidu.com",
  9. "$request_uri"
  10. ]
  11. }
  12. ],
  13. "status":302
  14. }

若此时请求 API:http://节点IP:端口号/user/info?name=apinto,插件对该请求拦截后,返回的响应头部中的 Location 字段值为 https://www.baidu.com/user/info?name=apinto,响应状态码为 302

图片

解析客户端请求上传的文件信息,提取文件请求中的文件后缀、文件大小等信息,将其设置为系统变量,供后续插件使用。

该插件仅支持解析 POSTPUTPATCH 请求方式中的文件参数,并且请求头部 Content-Type 应包含 multipart/form-data,否则将不会解析文件参数。

插件执行成功后,将会设置以下系统变量:

图片

系统变量可用于填写日志 Formatter 配置,使用方法请参考 Formatter 教程

图片

解析后端服务返回的文件信息,提取文件请求中的文件后缀、文件大小等信息,将其设置为系统变量,供后续插件使用。

文件响应时应设置 Content-Disposition 响应头部,否则将不会解析文件参数。

插件执行成功后,将会设置以下系统变量:

图片

系统变量可用于填写日志 Formatter 配置,使用方法请参考 Formatter 教程

Bug 修复

  1. 修复 Nacos 服务发现删除后,Apinto连接未断开的问题。

  2. 修复计数插件 Redis 模式下死锁的问题。

  3. 修复 Prometheus 拉取 Apinto 的 Metrics 时,返回数据格式错误导致读取失败的问题。

  4. 修复额外参数 v2 插件表单参数提交失败的问题。

图片

目前 Apinto 及其周边项目已经开源,我们希望通过 Apinto 强大的插件拓展能力,用户可像乐高积木一样根据需要自行拓展 Apinto 的插件,以满足不同的业务市场需求。

Apinto 目前属于萌芽阶段,我们希望集合广大开源爱好者的力量,与大家一起讨论方案,接受大家的批评指正,一起将产品打磨完善,做下一个端与端间的Traffic Middleware。这是一个开放和积极的项目,我们诚挚地邀请您一起参与到我们的项目开源工作中。每一个贡献都是有意义的,包括但不限于:

·查找 bugs,取得性能上的提升

·帮助完善文档,提供用户操作体验

·提交你们的 issue,让我们知道您的奇思妙想

·参与自定义插件的开发,丰富 Apinto 的能力

...

欢迎各位开源爱好者参与到 Apinto 项目中,和我们一起为开源事业贡献自己的力量!

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号