Solon2 接口开发: 实战 Gateway 模式效果
1、效果预览
网关
@Mapping("/api/v3/app/**")
@Component
public class ApiGateway3x extends UapiGateway {
@Override
protected void register() {
filter(new BreakerFilter()); //融断
before(new StartHandler()); //开始计时
before(new ParamsParseHandler()); //参数解析
before(new ParamsSignCheckHandler(new Md5Encoder())); //参数签名较验
before(new ParamsRebuildHandler(new AesDecoder())); //参数重构
after(new OutputBuildHandler(new AesEncoder())); //输出构建
after(new OutputSignHandler(new Md5Encoder())); //输出签名
after(new OutputHandler()); //输出
after(new EndBeforeLogHandler()); //日志
after(new EndHandler("v3.api.app")); //结束计时
//添加一批具体的接口处理Bean
addBeans(bw -> "api".equals(bw.tag()));
}
}
接口
@Component(tag = "api")
public class API_config_set extends ApiBase {
@Inject
ConfigService configService;
@NotEmpty({"tag", "key"})
@Mapping("config.set")
public void exec(String tag, String key, String value) throws Throwable {
configService.setConfig(tag, key, value);
}
}
2、具体参考:
https://gitee.com/noear/marsh/tree/main/_demo/marsh-api-demo2
Solon2 接口开发: 实战 Gateway 模式效果的更多相关文章
- Solon2 接口开发: 强化 Gateway 模式
一般可以从这几方面对 Gateway 模式进行强化: 定制异常状态码 定制基类 将一些处理独立封装成类 接口只返回数据部份,异常状态用抛 强化之后,具体的网关即简单,又功能强大.同时会对团队开发形成一 ...
- F5 api接口开发实战手册(二)
F5 rest api 各对象使用方式详解 本篇文章介绍rest api接口下Collection.Resource.Subcollections.SubResource的各种使用方法.如果您不了解这 ...
- Solon2 接口开发: 分布式 Api Gateway 开发预览
建议使用专业的分布式网关产品,比如: nginx apisix [推荐] k8s ingress controller 等... 对 Solon 来讲,只有 Gateway:它调用本地接口时,则为本地 ...
- F5 api接口开发实战(一)
本人从18年下旬,开始从事F5负载均衡的自动化开发工作,主要使用python编程语言,开发的F5功能模块为LTM和GTM. F5开发简介 1.F5管理模式 F5的管理模式主要有4种(不包含snmp), ...
- 重学 Java 设计模式:实战外观模式「基于SpringBoot开发门面模式中间件,统一控制接口白名单场景」
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 你感受到的容易,一定有人为你承担不容易 这句话更像是描述生活的,许许多多的磕磕绊绊总 ...
- 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发
第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...
- 重学 Java 设计模式:实战代理模式「模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景」
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 难以跨越的瓶颈期,把你拿捏滴死死的! 编程开发学习过程中遇到的瓶颈期,往往是由于看不 ...
- .net之微信企业号开发(三) 回调模式的接口开发
一.前言 微信企业号应用中,有两种模式,一种是普通模式,这种模式只能进行简单网页链接,以及发送固定的消息.为了可以让企业号的用户更好的与应用交互,微信提供了回调模式,这种回调模式的可以将用户发送给微信 ...
- 小D课堂【SpringBoot】接口Http协议开发实战
---恢复内容开始--- ====================2.SpringBoot接口Http协议开发实战 ============================= 1.SpringBoot ...
- SpringBoot微服务电商项目开发实战 --- api接口安全算法、AOP切面及防SQL注入实现
上一篇主要讲了整个项目的子模块及第三方依赖的版本号统一管理维护,数据库对接及缓存(Redis)接入,今天我来说说过滤器配置及拦截设置.接口安全处理.AOP切面实现等.作为电商项目,不仅要求考虑高并发带 ...
随机推荐
- 二。docker安装mysql 并配置
1.docker安装mysql 1.1使用docker拉取mysql的镜像 docker pull mysql:5.7 1.2通过镜像启动 docker run -p 3306:3306 --name ...
- Redis Functions 介绍之一
Redis提供了编程接口(programming interface)可以让你在Redis服务器端执行客户的脚本. 一个重大的变化就是从Redis 7开始,你可以选择使用Redis Functions ...
- 创造力的起源《The Origins of Creativity》
接近创造力 创造力是对原创的追求,其动力是人类对于新奇事物的钟爱. 了解创造力需要三个层次的思考. 1.What(如何定义这种现象) 2.Question(发问,他是如何出现的,导致其出现的最初原因是 ...
- centos 7.9安装Prometheus
一.Prometheus功能 Prometheus 在系统监控和警报方面非常强大,它适用于多种应用场景.以下是一些常见的 Prometheus 应用场景,以及具体的例子: 性能监控:Prometheu ...
- Batrix企业能力库之物流交易域能力建设实践
简介 Batrix企业能力库,是京东物流战略级项目-技术中台架构升级项目的基础底座.致力于建立企业级业务复用能力平台,依托能力复用业务框架Batrix,通过通用能力/扩展能力的定义及复用,灵活支持业务 ...
- preparedStatement.setObject()为什么要这样写?
setObject就是给JDBC的SQL语句的占位符赋值的,即是下面的"?" 预编译的SQL:参数使用?作为占位符 注意:sql的参数使用?作为占位符. 如: select * f ...
- Google Colab 现已支持直接使用 🤗 transformers 库
Google Colab,全称 Colaboratory,是 Google Research 团队开发的一款产品.在 Colab 中,任何人都可以通过浏览器编写和执行任意 Python 代码.它尤其适 ...
- [CF1830F] The Third Grace
题目描述 You are given $ n $ intervals and $ m $ points on the number line. The $ i $ -th intervals cove ...
- Rong晔大佬教程学习(0):前言
2023-12-13 在安装了tinyriscv的工具链之后,本想着说去看那个技术文档,但是那个技术文档只是相当于一个"使用手册",而不是技术教程,所以说还是得去补一补计组的知识. ...
- 华企盾DSC导致wps个人模式无策略组新建的文件仍然加密
解决方法:右键wps安装目录手动解密即可(原因:wps模板被加密导致)