之前写过一篇关于阿里低代码工具LowCodeEngine的文章,发现大家还是很感兴趣的。最近发现了Yao,一个很有趣的低代码工具,支持开发JSON形式的管理系统。不仅可以用来开发后端API,还可以用来开发前端接口。简单高效,推荐给大家!SpringBoot实战电商项目商城(50k+star)地址:https://github.com/macrozheng/mallYao简介Yao是一个Go语言驱动的低代码应用引擎,目前在Github上有3.8k+Star!使用该框架,可以通过JSON完成90%的界面和页面开发,适合开发管理系统!尧的名字来自汉字尧(yáo),这是构成八卦的基本符号。看来作者对八卦颇有研究。下面使用开发的界面效果图,暗黑风格相当炫酷!用Docker安装Yao非常方便,下面我们就这样在Linux上安装吧!首先下载Yao的Docker镜像;dockerpullyaoapp/yao:0.9.1-amd64-dev然后使用以下命令运行Yao容器;dockerrun--nameyao\-p5099:5099\-v/mydata/yao:/data/app\-dyaoapp/yao:0.9.1-amd64-dev因为Docker容器内部安装了Yao命令工具,我们在使用的时候需要先进入容器:dockerexec-ityao/bin/bash比如在容器中使用yaoversion命令查看版本。使用接下来,我们将介绍姚的使用。我们就以商城项目中的品牌管理功能为例,使用姚来开发!基本使用首先让我们熟悉一下下载的基本使用!直接进入容器的/data/app目录,使用如下命令初始化项目;cd/data/app#进入项目目录yaoinit#运行初始化程序yao会自动生成如下目录,使用ll命令查看项目目录结构:接下来使用yaomigrate命令创建数据库表.项目中默认有一个pet表用于测试:然后使用如下命令初始化菜单;yao运行flows.setmenu接下来,使用yaostart命令启动服务。控制台输出如下;项目启动成功然后就可以访问了,默认账号密码如下,访问地址:http://192.168.3.105:5099/xia...账号:xiang@iqka.com密码:A123456p+登录成功后,我们就可以发现有默认测试还有宠物管理功能;还有用户管理功能;还有一个菜单管理功能,这些都是基本功能,后面会用到。创建数据模型接下来我们将使用Yao创建数据模型并实现简单的CRUD操作。我们将通过实现一个简单的产品品牌管理功能,体验使用Yao开发应用的神奇之处;创建一个数据模型描述文件brand.mod.json,由于容器中的项目目录已经挂载到宿主机上,将文件放在/mydata/yao/models目录下即可:{"name":"Brand","table":{"name":"brand","comment":"商品品牌表"},"columns":[{"label":"ID","name":"id","type":"ID"},{"label":"name","name":"name","type":"string"},{"label":"Firstletter","name":"first_letter","type":"string"},{"label":"sort","name":"sort","type":"integer"},{"label":"brandstory","name":"brand_story","type":"string"},{"label":"brandlogo","name":"logo","type":"string","length":255}],"values":[{"name":"Wanhe","first_letter":"W","sort":0,"brand_story":"WanheStory","logo":"test"},{"name":"Samsung","first_letter":"S","sort":100,"brand_story":"SamsungStory","logo":"test"},{"name":"小米","first_letter":"M","sort":200,"brand_story":"小米的故事","logo":"test"}],"option":{"timestamps":true,"soft_deletes":true}}使用yao命令创建数据库表;cd/data/appyaomigrate-nbrand创建成功后,可以使用yao命令查询data,如查询所有商品品牌;yaorunmodels.brand.Get'::{}'通过主键查询商品品牌;yaorunmodels.brand.Find1'::{}'根据ID删除商品品牌;yaorunmodels.brand.Delete1添加新产品品牌;yaorunmodels.brand.Create'::{"name":"万和","first_letter":"W","sort":0,"brand_story":"万和的故事","logo":"http://img.macrozheng.com/mall/images/20200607/5b07ca8aN4e127d2f.jpg"}'修改商品品牌,这个操作是不是有点像在命令行使用SQL?yaorunmodels.brand.Save'::{"id":2,"brand_story":"Modifythebrandstory"}'编写接口接下来我们使用yao开发后台接口,这里实现分页查询和保存接口先编写接口描述文件brand.http.json,放到/mydata/yao/apis文件夹下;{"name":"Brand","version":"1.0.0","description":"商品品牌管理界面","guard":"bearer-jwt","group":"brand","paths":[{"path":"/search","method":"GET","guard":"-","process":"models.brand.Paginate","in":[":query-param","$query.page","$query.pagesize"],"out":{"status":200,"type":"application/json"}},{"path":"/save","method":"POST","guard":"-","process":"models.brand.Save","in":[":payload"],"out":{"status":200,"type":"application/json"}}]}测试分页查询接口;curl'http://192.168.3.105:5099/api/brand/search?page=1&pagesize=1&where.name.match=Xiaomi'再次测试并保存界面,界面开发真的很简单!curl-XPOSThttp://192.168.3.105:5099/api/brand/save-H'Content-Type:application/json'-d'{"name":"NewBrand","first_letter":"X","sort":200,"brand_story":"Newbrandstory","logo":"test"}'编写界面接下来我们就用yao来实现品牌管理的前端界面,还是很简单的!编写数据表描述文件brand.tab.json,放在/mydata/yao/tables文件夹下;{"name":"Brand","version":"1.0.0","decription":"Brandadmin","bind":{"model":"brand"},"apis":{},"列”:{“ID”:{“标签”:“ID”,“视图”:{"type":"label","props":{"value":":id"}}},"Name":{"label":"Name","view":{"type":"label","props":{"value":":name"}},"edit":{"type":"input","props":{"value":":name"}}},"FirstLetter":{“label”:“FirstLetter”,“view”:{“type”:“label”,“props”:{“value”:“:first_letter”}},"edit":{"type":"input","props":{"value":":first_letter"}}},"Sort":{"label":"Sort","view":{"type":"label","props":{"value":":sort"}},"edit":{"type":"input","props":{"value":":sort"}}}},"filters":{"Keywords":{"label":"输入搜索","bind":"where.name.match","input":{"type":"input","props":{"placeholder":"请输入关键字"}}}},"list":{"primary":"id","layout":{"columns":[{"name":"ID","width":80},{"name":"Name","width":100},{"name":"FirstLetter","width":200},{"name":"排序"}],"过滤器":[{"名称":"关键字"}]},"actions":{"pagination":{"props":{"showTotal":true}}},"option":{"operation":{"unfold":true}}},"edit":{"primary":“id”,“layout”:{“fieldset”:[{“columns”:[{“name”:“Name”,“width”:8},{“name”:“FirstLetter”,“width”:8},{"名称":"排序","宽度":8}]}]},"actions":{"cancel":{},"save":{},"delete":{}}}}然后就可以直接访问界面了,访问地址:http://192.168.3.105:5099/xia...如果想让这个功能显示在菜单中,还需要在菜单设置中添加总结今天体验了瑶,确实是一个很贴心的低代码功能??工具。用户只需要使用JSON创建数据库,开发后端API和前端接口,大大提高了开发效率。不过,我觉得也有一些不足之处。比如目前只支持深色主题,对于JSON错误基本没有提示,也没有专门的开发工具可以提示语法!参考项目地址:https://github.com/YaoApp/yao官方文档:https://yaoapps.com/doc
