2025年6月9日 星期一 乙巳(蛇)年 三月十三 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Spring Cloud

SOP 开放平台解决方案项目 基于 Spring Cloud 实现

时间:12-14来源:作者:点击数:11
城东书院 www.cdsy.xyz

SOP(Simple Open Platform)一个开放平台解决方案项目,基于 Spring Cloud 实现,目标让用户快速搭建自己的开放平台。

通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。

SOP 封装了开放平台大部分功能包括:签名验证、统一异常处理、统一返回内容 、业务参数验证(JSR-303)、秘钥管理等,未来还会实现更多功能。

项目特点

  • 接入方式简单,与老项目不冲突,老项目注册到注册中心,然后在方法上加上注解即可。
  • 架构松耦合,业务代码实现在各自微服务上,SOP 不参与业务实现,这也是 Spring Cloud 微服务体系带来的好处。
  • 扩展简单,开放平台对应的功能各自独立,可以自定义实现自己的需求,如:更改参数,更改签名规则等。

谁可以使用这个项目

  • 有现成的项目,想改造成开放平台供他人调用
  • 有现成的项目,想暴露其中几个接口并通过开放平台供他人调用
  • 想搭一个开放平台新项目,并结合微服务的方式去维护
  • 对开放平台感兴趣的朋友

以上情况都可以考虑使用 SOP

例子

  • // 加一个注解即可
  • @Open("story.get")
  • @RequestMapping("/get")
  • public StoryResult get() {
  • StoryResult result = new StoryResult();
  • result.setId(1L);
  • result.setName("海底小纵队");
  • return result;
  • }

调用:

  • // 公共请求参数
  • Map<String, String> params = new HashMap<String, String>();
  • params.put("app_id", appId);
  • params.put("method", "story.get");
  • params.put("format", "json");
  • params.put("charset", "utf-8");
  • params.put("sign_type", "RSA2");
  • params.put("timestamp", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
  • params.put("version", "1.0");
  • // 业务参数
  • Map<String, String> bizContent = new HashMap<>();
  • bizContent.put("id", "1");
  • bizContent.put("name", "葫芦娃");
  • params.put("biz_content", JSON.toJSONString(bizContent));
  • System.out.println("----------- 请求信息 -----------");
  • System.out.println("请求参数:" + buildParamQuery(params));
  • System.out.println("商户秘钥:" + privateKey);
  • String content = AlipaySignature.getSignContent(params);
  • System.out.println("待签名内容:" + content);
  • String sign = AlipaySignature.rsa256Sign(content, privateKey, "utf-8");
  • System.out.println("签名(sign):" + sign);
  • params.put("sign", sign);
  • System.out.println("URL参数:" + buildUrlQuery(params));
  • System.out.println("----------- 返回结果 -----------");
  • String responseData = get(url, params);// 发送请求
  • System.out.println(responseData);

架构图

架构图

如上图所示,整个系统运行后,开发者只需关注微服务中的业务代码,接口变更后重新部署微服务应用即可

已完成列表

  • 签名验证
  • 统一异常处理
  • 统一返回内容
  • session管理
  • 秘钥管理
  • 微服务端自动验证(JSR-303)
  • Admin管理平台,统一管理微服务配置,管理路由管理,微服务上下线
  • 门户网站,提供用户注册账号
  • 接入方管理+秘钥管理
  • 接口权限分配
  • 文件上传/下载
  • 提供基础SDK(含:Java,C++,C#,Python,Go,Rust,Nodejs)
  • 接口限流
  • 文档整合
  • 应用授权
  • 监控日志
  • 注册中心支持nacos/eureka
  • 网关动态修改参数
  • 预发布/灰度环境切换

界面预览

服务列表
路由管理
限流管理
秘钥信息
  • 门户网站
首页2
文档页

工程说明

运行环境:JDK8,Maven3,Nacos,Mysql

  • doc:开发文档
  • sop-common:公共模块,封装常用功能,包含签名校验、错误处理、限流等功能
  • sop-gateway:网关,统一访问入口,含Spring Cloud ZuulSpring Cloud Gateway实现
  • sop-example:微服务示例,含springboot,springmvc示例
  • sop-website:开放平台对应网站,提供文档API、沙箱测试等内容
  • sop-auth:应用授权服务示例
  • sop-admin:后台管理
  • sop-sdk:基础sdk,含Java、C#版本
  • sop-test:接口调用测试用例

分支说明

  • master:发版分支
  • develop:日常开发分支
  • eureka:使用 eureka 注册中心
  • pr:接受 PR 的分支,提交 PR 请提交到此分支

项目地址:https://gitee.com/durcframework/SOP

城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐