> 如果您想使用spring-cloud来搭建一个开放平台,可参考作者另外一个项目:[SOP](https://gitee.com/durcframework/SOP)
# easyopen
一个简单易用的接口开放平台,平台封装了常用的参数校验、结果返回等功能,开发者只需实现业务代码即可。
easyopen的功能类似于[淘宝开放平台](http://open.taobao.com/docs/api.htm?spm=a219a.7629065.0.0.6cQDnQ&apiId=4),它的所有接口只提供一个url,通过参数来区分不同业务。这样做的好处是接口url管理方便了,平台管理者只需维护好接口参数即可。由于参数的数量是可知的,这样可以在很大程度上进行封装。封装完后平台开发者只需要写业务代码,其它功能可以通过配置来完成。
得益于Java的注解功能以及Spring容器对bean的管理,我们的开放接口平台就这样产生了。
## 功能特点
- 开箱即用,写完业务代码直接启动服务即可使用,无需其它配置。
- 参数自动校验,支持国际化参数校验(JSR-303)。
- 校验功能和结果返回功能实现各自独立,方便自定义实现或扩展。
- 采用注解来定义接口,维护简单方便。
- 支持i18n国际化消息返回。
- 自动生成文档页面,类似swagger。
- 采用数字签名进行参数验证,签名算法见:easyopen\签名算法.txt。
- 采用appKey-secret形式接入平台,即需要给接入方提供一个appKey和secret。
## 技术点
- 加密算法(MD5、AES、RSA)
- Netty(编解码、长连接、断开重连)
- 限流(漏桶策略、令牌桶策略)
- 权限(RBAC、校验)
- session(单机、分布式)
- 注解(文档生成)
- token(jwt、accessToken)
- SDK(Java、C#、JavaScript)
## 结构图
![easyopen架构](https://images.gitee.com/uploads/images/2018/0730/181724_32093df8_332975.png "easyopen架构.png")
- 配置中心截图
![配置中心截图](https://images.gitee.com/uploads/images/2018/1008/145035_aec7317c_332975.png "QQ截图20181008144903.png")
## 文档页面
![文档](https://gitee.com/uploads/images/2018/0528/181649_50995938_332975.png "7.png")
## 示例
- 定义接口:
```
@Api(name = "goods.get")
public Goods getGoods(GoodsParam param) {
Goods goods = new Goods();
goods.setId(1L);
goods.setGoods_name("苹果iPhoneX");
goods.setPrice(new BigDecimal(8000));
return goods;
}
```
- 请求数据:
```
{
"name": "goods.get",
"version": "",
"app_key": "test",
"data": "%7B%22goodsPrice%22%3A%22%22%2C%22goods_name%22%3A%22iphoneX%22%7D",
"timestamp": "2018-03-22 13:48:58",
"format": "json",
"sign": "C946ACA5AC95B1790511764A10E675B7"
}
```
- 返回结果:
```
{
"code":"0",
"data":{
"goods_name":"苹果iPhoneX",
"id":1,
"price":8000
}
}
```
## 工程说明
- easyopen:easyopen:核心代码
- easyopen-configuration:配置中心[可选]
- easyopen-demo:接口服务端demo(含springboot,springmvc)
- easyopen-ext:扩展包(提供增强功能如熔断降级等功能)
- easyopen-sdk:接口对应的SDK(含Java,C#,Javascript)
- easyopen-starter:springboot对应的starter
- develop-doc:开发文档
## 使用说明
1. 启动easyopen-demo下的easyopen-server-manual(业务代码在GoodsApi.java中)
2. 运行easyopen-sdk下的sdk-java中的SdkTest.java
文档页面:http://localhost:8080/api/doc
## 开发文档
[easyopen开发文档](http://durcframework.gitee.io/easyopen)
离线版:参见develop-doc/readme.md
没有合适的资源?快使用搜索试试~ 我知道了~
easyopen 接口开放平台.rar
共988个文件
java:403个
md:102个
js:95个
需积分: 5 0 下载量 185 浏览量
2023-07-14
06:04:16
上传
评论
收藏 2.88MB RAR 举报
温馨提示
1. 概述 接口开放平台,为访问者提供统一的URL作为唯一访问入口,参数中指定具体接口标识和接口参数。它的优点包括接口规范性、效率、管理能力。接口开放平台可以分为简单的和复杂的两种方式。简单的接口开放平台,由自身提供接口实现。复杂的接口开放平台,为其他业务系统提供开放API的能力。 简单的接口开放平台 复杂的接口开放平台 接下来从三个部分阐述我对接口开放平台的理解。 2. 鉴权 接口调用方标识,由平台分配 令牌,由平台分配,用于生成签名 根据接口调用方标识进行接口权限和限制控制 3. 接口映射 接口名称映射关系 列举需要关注的关系信息 开放接口标识,例如规范 业务.模块.行为 映射接口类型,例如HTTP、具体RPC类型 接口描述,例如URL HTTP方法类型,如GET 接口参数映射关系 列举需要关注的关系信息 数据的层次结构 类型转换 验证要求 4. 支持接口种类 针对复杂的接口开放平台,需要考虑支持哪些形式的接口。 内部接口 开放平台系统提供的接口,例如使用easyOpen框架定义的接口 适用于小型开放平台,映射关系简单,系统内部维护了接口标识与bean method的关系
资源推荐
资源详情
资源评论
收起资源包目录
easyopen 接口开放平台.rar (988个子文件)
.babelrc 230B
.babelrc 230B
run.bat 18B
run.bat 18B
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
mvnw.cmd 5KB
RSA.cs 8KB
OpenHttp.cs 8KB
OpenClientTest.cs 7KB
EncryptClient.cs 6KB
OpenClient.cs 5KB
OpenConfig.cs 4KB
BaseRequest.cs 4KB
OpenRequest.cs 3KB
AESUtil.cs 2KB
UtilityTest.cs 2KB
ClassUtil.cs 2KB
MD5Util.cs 2KB
UploadFile.cs 2KB
RSAUtil.cs 1KB
AssemblyInfo.cs 1KB
AssemblyInfo.cs 1KB
FileUtil.cs 1KB
JsonUtil.cs 1KB
RequestForm.cs 1KB
SignUtil.cs 1KB
BaseResponse.cs 1KB
Response.cs 706B
Program.cs 642B
CommonRequest.cs 592B
SdkConfig.cs 460B
FileUploadRequest.cs 371B
GetGoodsRequest.cs 360B
HelloRequest.cs 353B
Goods.cs 322B
HandshakeParam.cs 288B
IgnoreSign.cs 279B
GetGoodsResponse.cs 253B
CommonResponse.cs 248B
GoodsParam.cs 245B
FileUploadResponse.cs 232B
HelloResponse.cs 227B
RequestMethod.cs 218B
EasyopenSDKTest.csproj 5KB
EasyopenSDKCSharp.csproj 4KB
bootstrap.min.css 111KB
easyui.css 68KB
easyui.css 66KB
github1-contents.css 12KB
angular.css 10KB
tabs.css 9KB
tabs.css 7KB
mobile.css 6KB
zTreeStyle.css 6KB
color.css 6KB
datagrid.css 6KB
panel.css 6KB
datagrid.css 5KB
panel.css 5KB
linkbutton.css 4KB
window.css 4KB
calendar.css 4KB
calendar.css 4KB
window.css 4KB
linkbutton.css 3KB
tree.css 3KB
tree.css 3KB
datepicker.css 3KB
layout.css 3KB
layout.css 3KB
textbox.css 3KB
textbox.css 3KB
spinner.css 3KB
spinner.css 3KB
icon.css 3KB
menu.css 2KB
accordion.css 2KB
menu.css 2KB
accordion.css 2KB
tooltip.css 2KB
tooltip.css 2KB
menubutton.css 2KB
menubutton.css 2KB
datalist.css 2KB
datalist.css 2KB
switchbutton.css 2KB
switchbutton.css 2KB
slider.css 2KB
slider.css 2KB
common.css 2KB
pagination.css 2KB
pagination.css 1KB
searchbox.css 1KB
searchbox.css 1KB
dialog.css 907B
messager.css 898B
messager.css 895B
共 988 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
野生的狒狒
- 粉丝: 1510
- 资源: 1530
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功