本期推荐的UCToo是一系列实现云原生分布式SaaS应用开发的最佳实践的总称。
概述
UCToo是一套云原生分布式SaaS应用开发基础设施。符合SaaS成熟度模型Level5级标准,实现SaaS统一应用实例模板开发规范,采用开源、通用、厂商中立的技术选型。内置众多开发者效率工具,可快速进行SaaS应用的开发和运营,适合作为SaaS平台、产业互联网等产品的起始项目。开发成果可共享,可互联互通,可在UCToo应用市场商业化分发。
主要特性
本项目的设计目标是提供开发人员,可以主要通过定义应用模块的数据结构,即可生成应用模块的管理后台、API接口以及默认移动应用,使得无论掌握何种技术栈的后台开发人员还是前端开发人员,都可以采用本项目快速的开发多端兼容的数字化系统和应用,并可进行灵活的二次开发。
- 先进技术,主流应用,开源开放。
- 模块可拆卸,系统只保留核心的功能,其余功能通过扩展模块来实现。
- 支持云原生应用开发,支持多商户多应用管理SaaS平台特性,可在多数云平台环境独立安装部署,支持云原生部署。
- 支持微信小程序云开发特性。
- 实现了微信第三方平台对接的中控服务器逻辑,并可灵活自定义与微信公众平台、微信开放平台的各种业务交互,由于第三方平台开发方式是微信交易组件、批量云开发等的依赖基础,因此建议微信相关应用开发都采用第三方平台方式。
- 实现了微信第三方平台应用模块化开发,各种增值应用都可以独立安装及卸载,支持模块商业化分发和部署。
- 已集成微信第三方平台批量代云开发,支持去中心化部署商户Web端管理平台和小程序端应用模板。
- catchadmin可实现商户Web端管理平台低代码快速开发,UCToo低代码模块可实现小程序、APP多端低代码快速开发。
产品架构
- 系统融合了众多优秀开源项目,采纳通用技术,每周持续集成业界最佳实践。UCToo开发团队扩展了微信应用开发相关功能,对接了微信公众平台和开放平台的所有接口,使其允许在任何类型的微信应用项目中使用。
- 第三方平台配置信息保存在 wechatopen 表。授权到第三方平台的公众号/小程序等帐号信息保存在 wechatopen_applet表,wechatopen 表的参数用来初始化 easywechat SDK,wechatopen_applet表的参数用来作为第三方平台代公众号/小程序实现业务的帐号信息。
- UCToo V2 技术选型采用了前后端分离的catchadmin框架,
同时结合腾讯云CloudBase云原生开发平台的特性,
可实现SaaS应用实例模板去中心化部署,
使得本项目符合Level 5 级SaaS产品的主要特性
控制器
使用管理后台->系统管理->代码生成功能可以生成管理后台数据表,模型和资源控制器
API
uctoo-api-client
uctoo-api-client-php 是一个轻量级、语义化、对IDE友好的HTTP客户端,支持常见的HTTP请求、异步请求和并发请求,是PHP开发者向UCToo服务端发送请求的SDK工具。
当我们要开发一个集成微信小商店的UCToo商城模块minishop时,在商品类目管理功能页面,有一个同步微信小商店获取类目详情的功能,我们就可以采用如下的开发规范:
- 从前端VUE项目,发起一个请求给minishop产品的php后台同步类目接口sync。
- 在php后台同步类目方法中,我们并不是按照传统的方式初始化一个本地运行实例的微信sdk去调用微信小商店标准版交易组件的开放接口,而是初始化一个uctoo-api-client-php客户端,转发请求到wechatopen产品的获取类目详情微服务。示例代码如下:
/**
* 同步微信小商店类目数据到本地
*/
public function sync(Request $request)
{
$result = null;
$host = trim(Utils::config('wechatopen.host'));
$account = trim(Utils::config('wechatopen.account'));
$password = trim(Utils::config('wechatopen.password'));
$response = Http:: withHost($host) //指定第三方平台
->withAccountAuth($account,$password) //采用服务端帐号认证
->withVerify(false) //无需SSL验证
->product('/api/wechatopen') //如果指定产品 则必填参数
->post('/product/category/get', ['appid' => AdminApplet::adminApplet($request->user()->id)['appid'],'f_cat_id'=>0]); //当前管理员管理的appid
$res = $response->body();
return CatchResponse::success( $res,'sync success');
}
二次开发
采用UCToo进行二次开发的一般步骤:
1.根据需求创建数据库数据结构。数据结构需遵循SaaS共享数据模型约定的数据规范。
2.通过uctoo-api-server管理后台的后台界面生成功能,一键生成所创建数据模型的后台CRUD功能。
3.通过uctoo-api-server管理后台的API管理功能生成API。配置API权限给平台所管理的微应用。
4.通过uctoo-api-client模板配置对接API,定制开发所需的应用。
5.通过uctoo-api-server管理后台的应用发布功能,发布到平台所管理的微应用帐号。
6.通过uctoo-api-server管理后台的应用打包功能,将所开发的应用打包成SaaS应用实例模板,可发布到有相同功能需求的其他微应用帐号中。
运行环境依赖
PHP >= 7.1.0
Mysql >= 5.5.0 (需支持innodb引擎)
PDO PHP Extension
MBstring PHP Extension
CURL PHP Extension
ZIP Extension
Composer
使用手册
具体请参考
https://www.kancloud.cn/doc_uctoo/manual