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

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

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

{
    "code":0,
    "data":{
        "valid":true,
        "scoreMsg":"系统判断为同一人",
        "score":0.81,
        "score2":0.81,
        "incorrect":100,
        "message":"比对成功",
        "requestId":"d022123ca86945fbb6562a8c90a416f1"
    },
    "message":"success"
}

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

{
  "body_filter": [
    "$.data.requestId"
  ],
  "header_filter": []
}

返回客户端的响应体为:

{
    "code":0,
    "data":{
        "valid":true,
        "scoreMsg":"系统判断为同一人",
        "score":0.81,
        "score2":0.81,
        "incorrect":100,
        "message":"比对成功"
    },
    "message":"success"
}

图片

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

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

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

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

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

  • ......

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

示例插件配置如下:

{
    "body":"",
    "content_type":"application/json",
    "headers":[
        {
            "key":"location",
            "value":[
                "https://www.baidu.com",
                "$request_uri"
            ]
        }
    ],
    "status":302
}

若此时请求 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 项目中,和我们一起为开源事业贡献自己的力量!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/126903.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis-命令操作Redis

目录 一.Redis简介 二.Redis安装 2.1.Linux安装 2.2.Windows安装 三.Redis常用命令 3.1 Redis字符串 3.2 Redis哈希(Hash) 3.3 Redis列表(List) 3.4 Redis集合(Set) 好啦今天就到这里了!!希望能帮…

如何将系统盘MBR转GPT?无损教程分享!

什么是MBR和GPT? MBR和GPT是磁盘的两种分区形式:MBR(主引导记录)和GPT(GUID分区表)。 新硬盘不能直接用来保存数据。使用前应将其初始化为MBR或GPT分区形式。但是,如果您在MBR时需…

软件工程一些图的画法

软件工程一些图的画法 【一】数据库设计:ER图【1】ER图简介【2】实体之间的关系【3】ER图绘制常见问题【4】ER图转关系模式 【二】流程图【1】流程图的作用【2】流程图中使用的符号【3】三种循环的流程图画法【4】流程图的基本结构【5】流程图常用的形式 【一】数据…

CCF ChinaSoft 2023 论坛巡礼 | 云计算标准化论坛

2023年CCF中国软件大会(CCF ChinaSoft 2023)由CCF主办,CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办,将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

“位不配财”?程序员兼职,稳妥挣钱才是王道!

一、配不上 戏称程序员为“码农”,一年到头,像那地里的老黄牛和勤勤恳恳的老农民。 又像极了那工地上的农民工,天天搬砖,苦得嘞。 作为推动时代进步的得力干将,工作量自然是不容小觑。说程序员不加班都没人信&#x…

什么样的CRM系统更适合外贸企业?

外贸CRM系统作为外贸客户关系管理的工具,已经成为了当下外贸企业对外贸易过程中不可或缺的一环。那什么样的CRM系统更适合外贸企业?小Z向您推荐Zoho CRM。下面说说它到底有什么好处和作用。 一、搭建更高效的客户关系管理系统 外贸企业从前期推广、开发…

环境变量小结

一 常见环境变量介绍 1 PATH 到了现在,我们也知道我们轻轻敲下ls指令,其实会转为一个可执行文件在运行,也就变成了一个进程,所以ls是让文件运行,./test也是让文件运行,凭什么我们的可执行文件就要加个./(这…

【爬虫实战】用python爬今日头条热榜TOP50榜单!

一、爬取目标 今天分享一期爬虫案例,爬取的目标是:今日头条热榜的榜单数据。 打开今日头条 首页,在页面右侧会看到头条热榜,如下: 爬取以上6个关键字段,含: 热榜排名,热榜标题,热度值,热榜标…

深度学习 opencv python 公式识别(图像识别 机器视觉) 计算机竞赛

文章目录 0 前言1 课题说明2 效果展示3 具体实现4 关键代码实现5 算法综合效果6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于深度学习的数学公式识别算法实现 该项目较为新颖,适合作为竞赛课题方向,学…

网络安全,SSL证书必不可少!

网站劫持是一种非常严重的安全威胁,会直接影响用户体验,甚至直接跳转其他网页,造成客户流失。它可以通过许多方式实现,却可以给企业或者个人网站做出不可逆的危害,以下是一些基本的防止措施建议: 1.使用HT…

【博士每天一篇文献-算法】Modular state space of echo state network

阅读时间:2023-11-2 1 介绍 年份:2013 作者:陈卫彪,华南理工大学计算机科学与工程学院, 期刊:Neurocomputing 引用量:17 本文介绍了一种改进回声状态网络(ESN)预测性能的新方法。该…

在全志XR806上移植st7789屏幕驱动

前言 很高兴有机会参加本次极术社区举办的“「免费试用」搭载安谋科技STAR-MC1的全志XR806 Wi-FiBLE 开发板试用活动”。 去年就对全志的mcu芯片感兴趣了,一直没有机会接触,看到本次极术社区提供的全志wifi BLE开发板试用,就马上参加了。板…

手把手教你如何扩展(破解)mybatisplus的sql生成 | 京东云技术团队

mybatisplus 的常用CRUD方法 众所周知,mybatisplus提供了强大的代码生成能力,他默认生成的常用的CRUD方法(例如插入、更新、删除、查询等)的定义,能够帮助我们节省很多体力劳动。 他的BaseMapper中定义了这些常用的C…

gorm的自动化工具gen_已设置图床

gorm的自动化工具gen 官方 https://gorm.io/zh_CN/gen/假设数据库结构如 这里使用gen-tool 安装 go install gorm.io/gen/tools/gentoollatest用法 gentool -hUsage of gentool:-c string配置文件名、默认值 “”、命令行选项的优先级高于配置文件。 -db string指定Driver…

《QT从基础到进阶·十五》用鼠标绘制矩形(QGraphicsView、QPainter、QGraphicsRectItem)

以下是鼠标绘制矩形最全的一种用法,完整源码将会放在最后面。 QT版本:5.15.2 VS版本:2019 1、在界面加载一张图片 界面的搭建选用QGraphicsView,自定义类GraphicsView继承QGraphicsView,在主程序中点击按钮打开 图片&…

Hello World背后的逻辑

一门语言的开发入门,总是抬手就能整出一个「Hello World Demo」。比如下面这样: 显然,熟悉 iOS 开发的同学都知道,上面这个来自 Objective-C。 今天,我们就从这熟悉的代码入手,来一起研究研究「Hello Worl…

verdi如何打开时可以加载配置比如字体

打开tcl使能 找到配置字体的命令 其实其他有需要的文件配置都可以在这里找到对应的指令 存储文件 新建verdi001.tcl文件 输入想要调整的字体以及大小 verdiSetFont -font "Bitstream Vera Sans" -size "18" verdiSetFont -monoFont "Courier&q…

Kafka JNDI 注入分析(CVE-2023-25194)

Apache Kafka Clients Jndi Injection 漏洞描述 Apache Kafka 是一个分布式数据流处理平台,可以实时发布、订阅、存储和处理数据流。Kafka Connect 是一种用于在 kafka 和其他系统之间可扩展、可靠的流式传输数据的工具。攻击者可以利用基于 SASL JAAS 配置和 SAS…

做哪些副业可以日赚一百?对程序员来说简直不要太容易!

日赚一百?对程序员来说简直不要太容易!下面给程序员们推荐一些日赚100的副业: ①外包接单 程序员简单粗暴赚钱的副业之一。 外包接单的类型包括但不限于:软件开发、硬件开发、小程序功能开发、web开发……大到一个系统的开发、…

pip 安装任意软件包报错

现象 使用 pip 命令时提示 查看源码 可以看到是从 pip 包中导入 main失败,点击查看目录 main 文件不见了,判断是文件缺失,重装 pip 即可 # python3 下载 pip curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # python2 下载…
最新文章