一天开发一个系统不再是梦,推荐这款前后端打通的低代码平台给你!


大叔过去几篇文章已经给大家介绍了不少的低代码平台,但今天介绍的对比以前更偏向于前端构建的项目,有很大的不同,非常值得大家去关注一下!!

这个项目名非常好记,和姚明同名:Yao

Yao介绍

Yao 是一款采用 Go 语言开发的低代码引擎,其最大的特点是可以通过 JSON 的编写,即可实现 90% 的页面交互功能,特别适合开发如 CRM、ERP 等内部管理系统。

直到今日,Yao 已经在 GitHub 上积累了 4.2k+Star了,并且增长速度还很快。

界面效果

下面是使用 Yao 开发的界面效果,这个是暗黑风格的,还是非常时尚炫酷的!

(⚠️注意这些页面全是通过 JSON 配置出来的,不需要写代码!!)

功能特点

  • 只需要使用 JSON 就能完成前端页面数据库模型API接口的开发,不需要写一行代码,超高生产力。
  • 可运行在云端或物联网设备上。
  • 采用 Go 语言开发,对比 Java、PHP、Python 等开发语言,拥有更高的性能优势。
  • 支持多种方式扩展数据流处理器,使得 Yao 具有极好的通用性。
  • 得益于优秀的架构设计,使得支持采用 Vue、React 等通用的前端框架进行组件扩展,满足特异化功能开发的需求。

JSON窥探

下面将通过一个「宠物」的例子

创建数据模型

可以通过编写数据模型描述文件,定义数据表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
"name": "宠物",
"table": { "name": "pet", "comment": "宠物表" },
"columns": [
{ "label": "ID", "name": "id", "type": "ID", "comment": "ID" },
{ "label": "编号", "name": "sn", "type": "string", "unique": true },
{ "label": "名称", "name": "name", "type": "string", "index": true },
{
"label": "类型",
"name": "kind",
"type": "enum",
"option": ["猫", "狗"],
"default": "猫",
"index": true
}
],
"values": [
{ "sn": "100001", "name": "Cookie", "kind": "猫", "desc": "一只猫" },
{ "sn": "100002", "name": "Beibei", "kind": "狗", "desc": "一只狗" }
],
"option": { "timestamps": true, "soft_deletes": true }
}

编写接口

同时我们也可以根据 JSON 编写我们的接口,比如下列定义出查询和保存的接口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{
"name": "宠物",
"version": "1.0.0",
"description": "宠物接口",
"guard": "bearer-jwt",
"group": "pet",
"paths": [
{
"path": "/search",
"method": "GET",
"guard": "-",
"process": "models.pet.Paginate",
"in": [":query-param", "$query.page", "$query.pagesize"],
"out": {
"status": 200,
"type": "application/json"
}
},
{
"path": "/save",
"method": "POST",
"guard": "-",
"process": "models.pet.Save",
"query": [":payload"],
"out": {
"status": 200,
"type": "application/json"
}
}
]
}

描述界面

我们最后通过简单的 JSON 描述,构建出我们的宠物列表,并提供了查询功能。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
{
"name": "宠物",
"version": "1.0.0",
"decription": "宠物管理表格",
"bind": { "model": "pet" },
"apis": {},
"columns": {
"ID": {
"label": "ID",
"view": { "type": "label", "props": { "value": ":id" } }
},
"编号": {
"label": "编号",
"view": { "type": "label", "props": { "value": ":sn" } },
"edit": { "type": "input", "props": { "value": ":sn" } }
},
"名称": {
"label": "名称",
"view": { "type": "label", "props": { "value": ":name" } },
"edit": { "type": "input", "props": { "value": ":name" } }
},
"类型": {
"label": "类型",
"view": { "type": "label", "props": { "value": ":kind" } },
"edit": {
"type": "select",
"props": {
"value": ":kind",
"options": [
{ "label": "猫", "value": "猫" },
{ "label": "狗", "value": "狗" }
]
}
}
},
"介绍": {
"label": "介绍",
"view": { "type": "label", "props": { "value": ":desc" } },
"edit": { "type": "textArea", "props": { "value": ":desc", "rows": 4 } }
}
},
"filters": {
"关键词": {
"label": "关键词",
"bind": "where.name.match",
"input": { "type": "input", "props": { "placeholder": "请输入关键词" } }
}
},
"list": {
"primary": "id",
"layout": {
"columns": [
{ "name": "ID", "width": 80 },
{ "name": "编号", "width": 100 },
{ "name": "名称", "width": 200 },
{ "name": "类型" }
],
"filters": [{ "name": "关键词" }]
},
"actions": { "pagination": { "props": { "showTotal": true } } },
"option": {}
},
"edit": {
"primary": "id",
"layout": {
"fieldset": [
{
"columns": [
{ "name": "编号", "width": 8 },
{ "name": "名称", "width": 8 },
{ "name": "类型", "width": 8 },
{ "name": "介绍", "width": 24 }
]
}
]
},
"actions": { "cancel": {}, "save": {}, "delete": {} }
}
}

最后通过上述的 JSON 文件,就能从前端到后端一次性构建出完整可交付的页面功能,是不是很棒!!

总结

今天大叔带大家体验了一下 Yao 的魅力,它确实是一款很有特点的低代码平台,不需要一句代码,就能够大大的提高开发效率!

感兴趣的小伙伴,赶快去试试吧!!项目地址为:

https://github.com/YaoApp/yao


  目录