tanghc 6f880a3a51 Merge remote-tracking branch 'origin/only-nacos'
# Conflicts:
#	doc/docs/_sidebar.md
#	sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/HttpTool.java
#	sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/RouteDefinition.java
#	sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInfo.java
#	sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/bean/ServiceInstance.java
#	sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/RegistryService.java
#	sop-admin/sop-admin-server/src/main/java/com/gitee/sop/adminserver/service/impl/RegistryServiceNacosImpl.java
#	sop-admin/sop-admin-server/src/main/resources/public/static/css/app.c6dfb7ee.css
#	sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-2c1f2e8f.0314067f.css
#	sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-4de1c2b6.a37cd815.css
#	sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-510c5a69.5e48e29a.css
#	sop-admin/sop-admin-server/src/main/resources/public/static/css/chunk-c3ce42fe.6b789903.css
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-2d2085ef.2e46d1f4.js
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-2d221c34.0db10350.js
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-4de1c2b6.0188bd8f.js
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-510c5a69.c3dd05bb.js
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-6f78c9fe.bec8af48.js
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-9f479afe.6b795525.js
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-elementUI.298ac98c.js
#	sop-admin/sop-admin-server/src/main/resources/public/static/js/chunk-libs.75deb05f.js
#	sop-auth/.gitignore
#	sop-auth/pom.xml
#	sop-auth/readme.md
#	sop-auth/src/main/java/com/gitee/sop/sopauth/SopAuthApplication.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/AccessToken.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/AppIdManager.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/FetchTokenParam.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/FetchTokenResult.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OAuth2Config.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OAuth2Manager.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OAuth2Service.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/OpenUser.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/RefreshToken.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/TokenPair.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/exception/LoginErrorException.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/AppIdManagerImpl.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/OAuth2ManagerCache.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/OAuth2ManagerRedis.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/auth/impl/OAuth2ServiceImpl.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/config/OpenServiceConfig.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/controller/CallbackController.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/controller/OAuth2Controller.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/entity/IsvInfo.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/entity/UserInfo.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/mapper/IsvInfoMapper.java
#	sop-auth/src/main/java/com/gitee/sop/sopauth/mapper/UserInfoMapper.java
#	sop-auth/src/main/resources/application.properties
#	sop-auth/src/main/resources/templates/oauth2login.html
#	sop-auth/src/test/java/com/gitee/sop/sopauth/RefreshTokenTest.java
#	sop-auth/src/test/java/com/gitee/sop/sopauth/SopAuthApplicationTests.java
#	sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/GatewayFilterDefinition.java
#	sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/RouteDefinition.java
#	sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/PreEnvGrayFilter.java
#	sop-example/sop-easyopen/src/main/resources/application.properties
#	sop-example/sop-story/sop-story-web/src/main/java/com/gitee/sop/storyweb/controller/result/FileUploadResult.java
#	sop-website/.gitignore
#	sop-website/src/main/java/com/gitee/sop/websiteserver/WebsiteServerApplication.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocInfo.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocItem.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocModule.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocParameter.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/DocParserContext.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaApplication.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaApplications.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaApps.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaInstance.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/bean/EurekaUri.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/config/CorsConfig.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/config/WebsiteConfig.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/controller/DocController.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/controller/SandboxController.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/manager/DocManager.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/manager/DocParser.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/manager/EasyopenDocParser.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/manager/SwaggerDocParser.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/sign/AlipayApiException.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/sign/AlipayConstants.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/sign/AlipaySignature.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/sign/StreamUtil.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/sign/StringUtils.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/util/UploadUtil.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/vo/DocBaseInfoVO.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/vo/DocInfoVO.java
#	sop-website/src/main/java/com/gitee/sop/websiteserver/vo/ServiceInfoVO.java
#	sop-website/src/main/resources/api.json
#	sop-website/src/main/resources/public/assets/css/global.css
#	sop-website/src/main/resources/public/assets/image/auth.png
#	sop-website/src/main/resources/public/assets/js/format.js
#	sop-website/src/main/resources/public/assets/js/inputcache.js
#	sop-website/src/main/resources/public/assets/lib/jquery/3.2.1/jquery.min.js
#	sop-website/src/main/resources/public/assets/lib/layui/css/layui.css
#	sop-website/src/main/resources/public/assets/lib/layui/css/layui.mobile.css
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/code.css
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/laydate/default/laydate.css
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/icon-ext.png
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/icon.png
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/layer.css
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/loading-0.gif
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/loading-1.gif
#	sop-website/src/main/resources/public/assets/lib/layui/css/modules/layer/default/loading-2.gif
#	sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.eot
#	sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.svg
#	sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.ttf
#	sop-website/src/main/resources/public/assets/lib/layui/font/iconfont.woff
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/0.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/1.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/10.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/11.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/12.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/13.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/14.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/15.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/16.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/17.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/18.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/19.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/2.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/20.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/21.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/22.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/23.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/24.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/25.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/26.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/27.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/28.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/29.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/3.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/30.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/31.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/32.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/33.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/34.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/35.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/36.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/37.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/38.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/39.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/4.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/40.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/41.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/42.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/43.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/44.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/45.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/46.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/47.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/48.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/49.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/5.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/50.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/51.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/52.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/53.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/54.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/55.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/56.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/57.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/58.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/59.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/6.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/60.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/61.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/62.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/63.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/64.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/65.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/66.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/67.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/68.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/69.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/7.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/70.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/71.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/8.gif
#	sop-website/src/main/resources/public/assets/lib/layui/images/face/9.gif
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/carousel.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/code.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/colorpicker.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/element.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/flow.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/form.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/jquery.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/laydate.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/layedit.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/layer.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/laypage.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/laytpl.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/mobile.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/rate.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/slider.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/table.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/tree.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/upload.js
#	sop-website/src/main/resources/public/assets/lib/layui/lay/modules/util.js
#	sop-website/src/main/resources/public/assets/lib/layui/layui.all.js
#	sop-website/src/main/resources/public/assets/lib/layui/layui.js
#	sop-website/src/main/resources/public/assets/lib/layuiext/Form.js
#	sop-website/src/main/resources/public/assets/lib/layuiext/module/treetable-lay/treetable.css
#	sop-website/src/main/resources/public/assets/lib/layuiext/module/treetable-lay/treetable.js
#	sop-website/src/main/resources/public/config/config.js
#	sop-website/src/main/resources/public/index.html
#	sop-website/src/main/resources/public/pages/doc/auth.html
#	sop-website/src/main/resources/public/pages/doc/code.html
#	sop-website/src/main/resources/public/pages/doc/doc.html
#	sop-website/src/main/resources/public/pages/doc/doc.js
#	sop-website/src/main/resources/public/pages/doc/docEvent.js
#	sop-website/src/main/resources/public/pages/doc/sign.html
#	sop-website/src/main/resources/public/pages/sandbox/sandbox.html
#	sop-website/src/main/resources/public/pages/sandbox/sandbox.js
#	sop-website/src/test/java/com/gitee/sop/websiteserver/WebsiteServerApplicationTests.java
2019-09-04 10:09:13 +08:00
2.0
2019-09-03 16:04:17 +08:00
2.0
2019-09-02 19:37:22 +08:00
2.0
2019-09-02 13:52:18 +08:00
2.0
2019-09-04 08:56:44 +08:00
2.0
2019-09-03 12:00:14 +08:00
2.0
2019-09-03 21:39:24 +08:00
2.0
2019-09-02 14:35:13 +08:00
2.0
2019-09-03 21:39:24 +08:00
2.0
2019-09-03 12:00:14 +08:00
2019-03-23 14:15:36 +08:00
2.0
2019-09-03 14:35:17 +08:00
2.0
2019-08-22 19:25:53 +08:00
2.0
2019-09-02 15:57:37 +08:00
2019-08-13 15:28:44 +08:00

SOP(Simple Open Platform)

一个开放平台解决方案项目基于Spring Cloud实现目标是能够让用户快速得搭建起自己的开放平台。

SOP提供了两种接口调用方式分别是支付宝开放平台的调用方式和淘宝开放平台的调用方式。 通过简单的配置后,你的项目就具备了和支付宝开放平台的一样的接口提供能力。

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

项目特点

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

谁可以使用这个项目

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

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

架构图

架构图

已完成列表

  • 签名验证
  • 统一异常处理
  • 统一返回内容
  • session管理
  • 秘钥管理
  • 微服务端自动验证JSR-303
  • 支持Spring Cloud Gateway
  • Admin管理平台统一管理微服务配置管理路由管理微服务上下线
  • 接入方管理+秘钥管理
  • 接口权限分配
  • 文件上传/下载
  • SDK
  • 接口限流
  • 文档整合
  • 应用授权
  • 监控日志
  • 支持nacos
  • 网关动态修改参数

界面预览

服务列表

路由管理

限流管理

秘钥信息

API文档

沙箱环境

工程说明

运行环境JDK8Maven3Nacos

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

分支说明

  • master发版分支
  • spring-cloud-gatewaySpring Cloud Gateway作为网关
  • develop日常开发分支
  • 1.x老的1.x版本代码

相关文档

开发文档

沟通交流

Q群328419269

Description
接口开放平台
Readme Apache-2.0 19 MiB
Languages
Java 46.2%
TypeScript 21.2%
Vue 13.7%
C++ 9.9%
C# 2.7%
Other 6.2%