用于创建 Web 服务和仪表板的低代码引擎(用于创建 web 服务和仪表板的低代码引擎有哪些)

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个用于创建 Web 服务和仪表板的低代码引擎——Yao。

用于创建 Web 服务和仪表板的低代码引擎(用于创建 web 服务和仪表板的低代码引擎有哪些)

Yao 是一个只需使用 JSON 即可创建数据库模型、编写 API 接口、描述管理后台界面的低代码引擎,使用 Yao 构建的应用可运行在云端或物联网设备上。 开发者不需要写一行代码,就可以拥有 10 倍生产力。

Yao 基于 flow-based 编程思想,采用 Go 语言开发,支持多种方式扩展数据流处理器。这使得 Yao 具有极好的通用性,大部分场景下可以代替编程语言, 在复用性和编码效率上是传统编程语言的 10 倍;应用性能和资源占比上优于 PHP, JAVA 等语言。

Yao 内置了一套数据管理系统,通过编写 JSON 描述界面布局,即可实现 90% 常见界面交互功能,特别适合快速制作各类管理后台、CRM、ERP 等企业内部系统。对于特殊交互功能亦可通过编写扩展组件或 HTML 页面的方式实现。内置管理系统与 Yao 并不耦合,亦可采用 VUE, React 等任意前端技术实现管理界面。

用于创建 Web 服务和仪表板的低代码引擎(用于创建 web 服务和仪表板的低代码引擎有哪些)

功能特性

  • 无代码:使用JSON创建数据库模型、编写接口、描述界面,真正意义上的无代码编程
  • 万物互联:支持在 ARM 设备上运行,可用于物联网、边缘计算、工业互联网
  • 数据可视化:简单易用的BI组件和功能,赋予商业更多的可能性
  • 处理器:内置一系列可以通过数据流、Javascirpt 和 GRPC 插件进行功能扩展的处理器
  • 数据流:通过数据流,开发者可以对数据进行任意形式的处理,且支持Javascript
  • 插件:基于GRPC的插件机制,支持使用nodejspython等语言进行功能拓展
  • 管理后台:通过编写JSON描述界面布局,快速搭建各种CRM、ERP等企业内部系统
  • 文件系统路由:每一个在apis文件夹下的文件都会成为一个可供调用的接口
  • 实时查询:内置媲美ES的查询引擎,且通过DSL实现JSON查询,简单且易用
  • 极致性能:底层使用Go语言,性能远超Java、PHP,分布式部署,一行命令搞定
  • 企业级安全:权限分级,管理员和员工账户分离,Api级别的权限控制,且支持自定义
  • 天然分布式:Go语言打包生成各个平台二进制文件,对于有上云需求的用户,很方便

安装部署

部署推荐使用Docker,也可以自行手动部署。

使用 Docker

1 创建容器:

安装 Docker 下载安装 Docker创建并启动容器: docker run -d --restart unless-stopped --name yao -v <app root>:/data/app -p <Port>:5099 yaoapp/yao:0.9.1-amd64

Yao Docker Images:

镜像

环境

使用场景

yaoapp/yao:0.9.1-amd64

生产环境

适用于云端部署

yaoapp/yao:0.9.1-arm64

生产环境

适用于物联网边缘设备部署

2 检查服务状态:

curl http://127.0.0.1:<Port>/api/xiang/ping


手动部署

1 运行安装脚本:

curl -fsSL HTTPS://website.yaoapps.com/install.sh | bash

2 添加用户:

useradd yao

3 创建应用文件夹:

mkdir /yaoapps

4 将应用代码复制到应用目录,例如:

git clone https://github.com/YaoApp/demo-crm.git /yaoapps/demo-crm

注意:生产环境中,请将启动模式设置为 production 。

5 配置服务,使用 pm2 supervisor 等服务进程管理工具。

supervisor 配置示例:

[program:demo-crm-server]directory=/yaoapps/demo-crmcommand=/usr/local/bin/yao startprocess_name=demo-crm-servernumprocs=1autostart=trueautorestart=trueuser=yaogroup=yaoredirect_stderr=truestdout_logFile=/yaoapps/demo-crm/supervisor.log

注意:不要使用 root 用户启动服务。

6 启动服务:

supervisor start

7 检查服务状态:

curl http://127.0.0.1:<Port>/api/xiang/ping


代理服务器

如需要使用 HTTPS 或者 一台机器上安装有多个应用,可以使用 Nginx, traefik 等代理服务器。

traefik 配置示例:

[[tls.certificates]]certFile = "/data/certs/star.yaoapps.com.crt"keyFile = "/data/certs/star.yaoapps.com.key"[http.routers.demo-crm]tls = truerule = "Host(`demo-crm.yaoapps.com`)"service = "demo-crm@file"[http.services][http.services.demo-crm.loadBalancer][[http.services.demo-crm.loadBalancer.servers]]url = "http://127.0.0.1:<port>/"

组件示例

A 链接

跳转第三方站点、跳转自定义扩展的页面、各个系统之间进行跳转

{ "Link": { "label": "外部链接", "view": { "type": "a", "props": { "value": ":link" } } }}

Tooltip 提示

提示,鼠标悬浮出现说明文字,常用于简化页面,内容聚焦。

{ "说明": { "label": "说明", "view": { "type": "tooltip", "props": { "value": ":desc" } } }}

Tree 树形控件

文件夹、组织架构、生物分类、国家地区等等,世间万物的大多数结构都是树形结构。使用 树控件 可以完整展现其中的层级关系,并具有展开收起选择等交互功能。

{ "Tree": { "label": "Tree", "edit": { "type": "tree", "props": { "value": ":tree", "checkable": true, "remote": { "api": "/api/tree/search", "query": { "select": ["id", "name"] } } } } }}

NumberCard 数字卡片

数字卡片,通常用来展示关键性的指标信息。

在图表页使用:

{ "name": "云计算相关企业", "width": 6, "type": "numberCard", "props": { "icon": "cloud-outline", "unit": "家" }}

在表单页使用:

{ "表格图表": { "label": "表格图表", "edit": { "type": "chart", "props": { "type": "numberCard", "value": ":service", "hide_label": true, "chart_props": { "height": 240, "icon": "cloud-outline", "unit": "家" } } } }}

折线图

用于创建 Web 服务和仪表板的低代码引擎(用于创建 web 服务和仪表板的低代码引擎有哪些)

饼图

用于创建 Web 服务和仪表板的低代码引擎(用于创建 web 服务和仪表板的低代码引擎有哪些)

k线图

用于创建 Web 服务和仪表板的低代码引擎(用于创建 web 服务和仪表板的低代码引擎有哪些)

旭日图

用于创建 Web 服务和仪表板的低代码引擎(用于创建 web 服务和仪表板的低代码引擎有哪些)

—END—

开源协议:Apache2.0

开源地址:https://github.com/YaoApp/yao

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2024年5月13日 下午4:06
下一篇 2024年5月13日 下午4:17

相关推荐