国内外开发平台有不少但大多都是前后端混合一体的开发模式即自定义一个表单然后和后端的数据模型绑定输出HTML到前端有的可以同时输出PC和移动端的HTML代码,但这种开发平台基本上是实现不了前后端分离的,架构上存在天然的缺陷即后端数据没有API服务化、API没有可视化、API不能重复为其他业务系统所重用,而且基本不能和微服务架构进行融合,所以开发的越多越重后面业务需求变化或生命周期一到这些模块的重构风险和成本也就越大,而采用前端后分离和微服务化开发才是企业业务系统长久开发之道,而国内RestCloud就是专门一款专注于企业后端API开发的专业化平台,企业只要选择一个成熟的前端UI框架开发前端UI即可,后端API由RestCloud API开发平台可以快速发布实现。
RestCloud是一款更轻量级、更快速、更全面、更低代码量、更易于学习和使用的专业化后端API的开发平台。
RestCloud通过建立数据模型和SQL配置功能可以无代码快速的实现80%的API开发工作,RestCloud本身已含有: 注解式开发、API接口自动扫描、验证框架、授权框架、缓存框架、IOC依赖注入、Class热加载框架、异常处理框架、过滤器框架、基于Web配置的数据持久层框架、多数据源管理框架、多数据库事务管理框架、异步请求队列框架、跨域请求等等核心功能, 使用RestCloud开发时开发人员只需要实现业务逻辑即可
RestCloud API开发平台适用业务场景
- 作为企业统一的后端服务开发平台,承担API的设计、开发平台
- 手机移动端APP、企业微信、小程序、钉钉的统一后端API开发平台
- 前后端分离的业务系统的后端API服务开发平台
- 各种网站或企业门户系统的开发平台,基于Velocity、FreeMarker模板的开发平台
- 各种企业业务系统的基础开发框架(OA、CRM、ERP、HR、MES)
- 已有业务系统的API接口开发平台
- 使用RestCloud替换或辅助SpringBoot开发框架
RestCloud API开发平台的主要功能
微应用管理
业务系统中微应用可以作为业务独立模块,微服务中微应用可以按照服务的粒度进行划分,一个微应用代表一个最小的微服务单元,这个单元可以进行独立开发、部署、上线、测试,微应用开发完成后可以通过Docker容器进行快速部署 RestCloud实现了在开发环境中统一对微应用进行授权、创建、管理并能进行团队并行开发,无需像SpringBoot为每个应用创建一个工程
数据模型管理
RestCloud提供了非常强大的业务数据建模功能,不管是单表、多表、一对多、多对一都可以由数据建模功能通过配置完成,同时数据建模支持RDBS关系数据库和NOSQL数据库.
- 根据已有数据库表创建数据模型或根据数据模型自动创建数据库表
- 可以通过业务模型配置快速实现主子明细表的关联查询和持久化
- 可以通过业务模型配置快速实现树型结构的数据TreeJson发布、关联删除等操作,无需编码
- 可以实现一对多、多对多、多对一的查询、持久化、删除等操作
- 可以根据数据模型一键生成MVC的Java代码
- 所有数据模型自带Excel的导入和导出功能
- 所有数据模型自带数据管理功能,无需数据库客户端工具即可管理所有数据
- 对所有数据模型可快速实现分页查询功能,无需编码
- 数据模型自动关联API,可以快速查看操作此数据模型的所有API
- 数据模型自动关联SQL语句,可以快速查看操作此数据模型的所有SQL语句
业务驱动API开发-API在线设计
开发人员根据需求原型图在RestBoot中对API进行设计,定义URI以及输入输出参数和模拟数据,定义完成后前端开发人员可先进行UI开发,直到前端和业务人员确定需求后再由后端工程师根据逻辑发布API即可,一个好的API设计有利于业务逻辑的快速实现
通过数据模型一键发布API服务
先对业务可能用到的主数据模型进行建模设计,然后根据对主数据模型的CRUD等操作发布相应的API,同时进行前端UI的开发并及时调整后端API的业务逻辑,实现对业务模块的快速迭代开发.
在Eclipse中开发API服务
与SpringBoot开发方式基本一致,只需要使用RestBoot的注解即可以快速把一个Java方法发布为API服务,同时RestBoot在注解中已自带有验证框架和参数接收功能,可极大提升开发效率
通过SQL语句发布API服务
RestCloud支持任意SQL语句发布为API服务,无需编写Java代码只需定义SQL语句即可快速发布为API服务
通过Web IDE开发API服务
开发人员可以直接使用Web IDE编写Java代码并配合RestCloud研发的Java Bean容器管理技术中和Class热加载技术,可快速实现在云端编写代码并发布API服务
对已经建好的数据模型除了可以自动发布API外也可以生成MVC三层Java代码到Eclipse中进行修改
Web MyBatis SQL配置管理
RestCloud自主研发了基于Web可视化管理的类似mybatis的核心功能,开发人员只需要在Web界面下配置SQL语句,无需在xml或注解配置,可以支持复杂的动态SQL语句,可以自动实现数据模型到Java Bean的双向映射,开发效率高于mybatis
- 通过Web界面的SQL配置可以大大降低学习和使用难度,同时有利于SQL语句的统一管理和监控
- 系统自动计算所有SQL语句的平均性能和执行次数
- SQL语句可以与数据模型进行双向关联,修改表或SQL时更容易评估影响范围
- 提供与MyBatis一样的Java Bean方法来操作SQL与Java Bean的双向映射
- 同时系统也可兼容引入MyBatis来操作数据库
Java Bean容器管理
RestCloud Java Bean容器管理为完全自主研发的核心功能之一,容器管理中可以查看到本平台所有运行的Java Bean实例、缓存信息,对本平台的Java Bean容器和缓存数据进行了可视化的Web管理。
- 支持IOC依赖注入,能自动检测循环依赖并给出错误提示,支持热加载Java Bean,系统在Web界面下能自动关联Java Bean与API服务
- 同时也无缝支持与Spring Bean的管理和使用,以更好的支持基于Spring框架编写的API运行到RestCloud平台下
服务聚合与依赖
服务聚合是指在Web界面中通过无代码的模式把多个已经发布的原子API动态组合成一个新的API并发布的技术(任何使用代码重新编写逻辑组装API的技术都不是真正的服务聚合), 新聚合的API服务会依次调用所有服务并把结果数据一次性输出给调用端 调用端也可以POST数据包给聚合服务,聚合服务会依次调用所有服务,并把数据包分配给每一个被聚合的服务,被聚合的服务也支持依赖关系的配置,可以通过配置把前一个API执行的结果传入下一个API的输入参数。
RestBoot对聚合服务的事务支持:如果被聚合的多个服务其中一个发生错误时,系统将自动回滚所有被聚合服务的数据。
服务控制策略插件管理
- RestCloud可以通过RestCloud API网关或者API本身两个粒度来对服务的调用进行控制
- SpingCloud一般只在客户端层面进行调用者的自我保护,而对于服务提供者一般不提供保护策略,如果php、.net调用API时SpringCloud的API服务基于处于裸奔状态
- RestCloud的服务控制策略是在服务提供者的角度提供自我保护的一种自定义策略,不管是java ,php,.net调用均处于自我保护状态中
- 流量控制策略:可以控制一个Rest服务的同时并发数,超出并发数时输出模拟数据
- 服务缓存策略:可以缓存一个服务的输出结果,当输入相同参数时直接输出缓存数据,不再执行业务逻辑
- 事务控制策略:可以指定一个服务是否支持多数据库事务
- 服务冻结策略:当一个服务运行出错或异常时可以设置是否立即锁定本服务
- IP黑白名单策略:可以拒绝不在白名单中的IP请求
异步服务队例
- 所有服务均可标识为异步请求(无需编码),异步服务请求自动加入调度队列
- 适合于高并发或者订阅类型的服务,客户端请求无需等待,只管发起服务执行完成自动回调
- 本平台异步服务队列通过将消息的完全持久化技术实现请求数据的高可用性,不会因为停机或掉电丢失未执行完队列数据的情况
- 首创等待类型的异步服务请求支持如:业务流程需要查询库存数量,只有库存数量为0时平台才主动通知业务流程发起一个采购流程
菜单管理
为了加快应用的开发速度,RestCloud中已经自带前端应用必须用到的菜单管理模块,可以快速的针对每个应用定义一个或多个菜单,并支持每个菜单项的权限控制。 菜单在Web界面中定义好后自动输出成为Tree Json数据,前端UI根据此Tree Json组合成菜单即可,大大加快了应用的开发速度。
数据字典管理
在前端UI开发中会有大量的Select项数据或者需要动态配置而不是硬编码的数据,这些数据项如果全部依赖后端开发人员进行编写维护模块将消耗大量的无技术含量的时间,RestCloud充分考虑到这类需求提供了数据字典管理功能, 后端开发人员只需要在Web界面中的数据字典功能模块中对录入数据的字段进行定义后就可以直接录入这些动态数据项,这些数据项无需编码就可以发布为API接口供前端UI开发人员使用。 极大的节省了后端API开发人员的开发时间。
后端视图模板技术
RestCloud提供后端视图模板技术且同时支持FreeMarker和Velocity两种模板
- 视图模板技术可对API服务产生的输出结果数据使用视图再包装一次再输出给调用端
- 通过视图模板技术可以很好的支持传统MVC(前后端不分离)的开发模式,同时也可以很方便的使用本平台制作网站或企业门户
- 支持Web界面编写和维护所有视图模板,无需修改模板文件,大大加快了模板的迭代开发速度
多数据源及跨数据库事务支持
在本平台开发的RestAPI可以同时跨多个数据源进行数据存取服务,同时平台提供了整体的多数据源事务控制功能,无需任何编码只需要注解或勾选支持事务即可。
服务模拟
- 支持Web界面下自定义模拟数据,而不是在Java编码中编写模拟数据,可以支持大数据量的模拟,用Java代码很难描述
- 可以针对数据模型自动生成模拟数据,能很好的支持分页测试及大数据量的测试
- 支持自定义模拟数据生成规则
- 在服务处理模拟状态时把模拟数据输出给调用端
- 在服务的业务逻辑还没有完成开发的情况下不影响前端系统的调用和开发
- 在Rest服务指定服务为模拟状态即可(无需编码),然后选择要模拟输出的Json即可,当客户端调用时系统就会读取服务模拟输出配置中的Json输出给调用端
API服务自动化测试
- 提供Web界面下的服务测试功能
- 服务测试不仅可以测试本平台的服务也可以测试外部的Rest服务
- 支持Debug功能可以针对本平台的Rest服务进入调试状态
- 对于开发好的Rest服务可以使用服务测试功能快速测试服务是否达到设计要求
- 测试结果可以直接保存为API接口的成功或失败示例
- 测试数据可以直接保存为测试用例
- 系统能自动运行测试用例并计算测试成功率和失败率
- 系统能自动定时的生成测试报告
灰度发布
- RestCloud的灰度发布可以在两个层面进行控制,如果部署了RestCloud API网关则可以在API网关层面进行粗粒度的灰度发布功能配置
- 当没有API网关时则可以使用RestBoot开发平台自带的灰度发布功能实现细粒度的API灰度发布功能
- RestBoot可以把同一个API服务的不同业务逻辑发布给不同的角色或部门及用户
- 当新版本的API服务V2.0运行稳定后下线V1.0服务即可平滑升级服务,如果新发布的服务出错则系统自动冻结该服务,自动回滚到V1.0服务
- 接合API网关可以很好的实现不同粒度的灰度发布功能实现
跨域请求
RestCloud平台已内置已经支持Ajax跨域请求,在开发前后端分离的系统时可以很好的进行前后端服务器的分布式部署,前端服务器可以使用Nodejs后端使用Tomcat等,通过Ajax跨域请求API服务.
权限管理
权限配置功能主要给所有Rest服务进行权限分组管理,通过权限组再去关联角色|用户|部门,客户端在调用服务时平台会进行权限检查如果没有权限的用户进行调用则系统会提示“无权调用本服务”。
组织机构管理
RestCloud平台自带组织机构管理模块,也可以很容易的集成第三方的组织架构数据库登录.
版本管理
在RestCloud中开发了的应用无需像Eclipse工程一样进行打包,只需要在Web界面中对应用进行打包并生成版本然后到安装有RestCloud平台的服务器中通过Web界面就可以直接安装上线运行,免去对应用工程的编译、打包、上传、重启等一系列工作,极大的提升了应用的迭代速度。
定时任务
支持定时执行Java Bean中的业务逻辑,在集群时可以指定定时任务执行的服务器以及协作方式
閱讀更多 RestCloud 的文章