Apache ShenYu ModifyResponse插件使用
创始人
2024-02-12 06:36:54

Apache ShenYu网关使用手册

  • 1 介绍
    • 1.1 概念
    • 1.2 特性
    • 1.3 架构图
  • 2 运行
    • 2.1 运行先决条件
    • 2.1 本地运行
  • 3 插件使用
    • 3.1 ModifyResponse插件
      • 3.1.1 插件名称
      • 3.1.2 适用场景
      • 3.1.3 插件功能
      • 3.1.4 插件代码
      • 3.1.5 如何使用插件
        • 3.1.5.1 插件使用流程图
        • 3.1.5.2 接入SpringBoot应用改造
        • 3.1.5.3 启用插件
        • 3.1.5.4 配置插件
        • 3.1.5.5 接口调用

1 介绍

1.1 概念

Apache ShenYu它是Java原生API网关,用于服务代理、协议转换和API治理。

1.2 特性

服务代理: Support for Apache® Dubbo™, Spring Cloud, gRPC, Motan, SOFA, TARS, WebSocket, MQTT
安全: Sign, OAuth 2.0, JSON Web Tokens, WAF plugin
API治理: Request, response, parameter mapping, Hystrix, RateLimiter plugin
可观测性: Tracing, metrics, logging plugin
控制面板: Dynamic traffic control, visual backend for user menu permissions
拓展: Plugin hot-swapping, dynamic loading
集群: NGINX, Docker, Kubernetes
语言: provides .NET, Python, Go, Java client for API register

1.3 架构图

在这里插入图片描述

2 运行

2.1 运行先决条件

在部署shenyu-admin项目前,需初始化其所使用的数据库(数据库目前支持:MySQL、PostgreSql、Oracle),其中所用到的脚本文件都存放在项目根目录下的db目录。我们这里使用的数据库是PostgreSql。
在项目pg初始化脚本目录中找到初始化脚本create-database.sql、create-table.sql,并使用客户端连接工具连接你的PostgreSql服务依次执行,由此你会得到一个名为shenyu的数据库,它之后可作为shenyu-admin项目的数据库使用。
在这里插入图片描述
在这里插入图片描述

2.1 本地运行

由于我们需要研究和改造shenyu网关项目,因此我们直接从github中拉取源码在本地运行即可。拉取地址为:git clone https://github.com/apache/shenyu.git。

启动步骤:
(1)我们这里使用PostgreSql来存储,需要先初始化数据库和修改application-pg.yml的jdbc相关配置,在设置变量–spring.profiles.active = pg启动服务。
在这里插入图片描述
在这里插入图片描述
(2)使用开发工具启动org.apache.shenyu.admin.ShenyuAdminBootstrap,访问http://localhost:9095,默认用户名和密码分别为:admin和123456。
(3)使用开发工具启动org.apache.shenyu.bootstrap.ShenyuBootstrapApplication。
在这里插入图片描述

3 插件使用

Apache ShenYu将基于责任链模式由所有启用的插件来执行它。作为Apache ShenYu的核心,插件是可扩展和可热插拔的。不同的插件做不同的事情。当然,用户也可以自定义插件来满足自己的需求。

3.1 ModifyResponse插件

3.1.1 插件名称

响应修改插件。

3.1.2 适用场景

需要对接口的响应头部参数、响应HTTP状态码或响应体进行修改的场景。

3.1.3 插件功能

修改HTTP响应状态码。
添加、设置、覆盖或者移除响应头部参数。
添加、覆盖或者移除响应体参数。

3.1.4 插件代码

核心模块shenyu-plugin-modify-response。
核心类
org.apache.shenyu.plugin.modify.response.ModifyResponsePlugin

3.1.5 如何使用插件

3.1.5.1 插件使用流程图

在这里插入图片描述

3.1.5.2 接入SpringBoot应用改造

为了测试ModifyResponse插件的使用,我们需要准备一个SpringBoot应用,将这个SpringBoot应用的网关交由shenyu网关来管理。
(1)pom.xml引入集成依赖包

org.apache.shenyushenyu-spring-boot-starter-client-springmvc2.5.0

(2)application.yml配置注册到shenyu网关注册配置信息

shenyu:register:registerType: http #zookeeper #etcd #nacos #consulserverLists: http://localhost:9095 #localhost:2181 #http://localhost:2379 #localhost:8848props:username: adminpassword: 123456client:http:props:contextPath: /springbootappName: springboot

(3)修改Controller接口映射路径
@ShenyuSpringMvcClient(“/vehicleType”)
@ShenyuSpringMvcClient(“/getList”)

import org.apache.shenyu.client.springmvc.annotation.ShenyuSpringMvcClient;@RestController
@AllArgsConstructor
@RequestMapping("/vehicleType")
@ShenyuSpringMvcClient("/vehicleType")
public class VehicleTypeController {private final VehicleTypeService vehicleTypeService;/*** 查询车辆类型*/@PostMapping("/getList")@ShenyuSpringMvcClient("/getList")public RequestResult getList() {return vehicleTypeService.getList();}
}

改造完成之后,启动项目,查看控制台打印信息,看到如下输出内容说明注册到shenyu网关成功了。
在这里插入图片描述

3.1.5.3 启用插件

在shenyu-admin --> 基础配置 --> 插件管理 --> modifyResponse设置为开启。
在这里插入图片描述

3.1.5.4 配置插件

Shenyu-admin插件列表 --> HttpProcess --> modifyResponse,先添加选择器,然后在添加规则。
(1)添加选择器
在这里插入图片描述
(2)添加规则
在这里插入图片描述

3.1.5.5 接口调用

在这里插入图片描述

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...