1.下载w5代码,地址https://github.com/w5teams/w5
2.进入w5目录下面,执行
cp -r apps docker && cp config.ini docker && docker-compose up -d
3.初始化成功
访问地址:http://ip:8888/ 账号:admin 密码:12345678
app整体概括
├── helloworld # APP 目录名
│ ├── app.json # APP 配置文件
│ ├── icon.png # APP 图标
│ ├── main # APP 代码
| | └── run.py # APP 入口文件
│ └── readme.md # APP 说明文件
1.配置文件
app.json配置文件在https://w5.io/help/dev/dev2.html
需要注意函数名字需要一致,参数顺序一致,当修改完函数不成效时,注意强制刷新或者重启w5
app配置文件,action里面放相应动作绑定的函数,可以多个动作,每个动作对应一个函数
{
"identification": "w5soar", // w5soar 签名,无需更改,必须存在
"is_public": true, // 是否为公开 APP,设置 false 为私有 APP
"name": "Hello World", // APP 名称
"version": "0.1", // APP 版本
"description": "W5 SOAR - Hello World", // APP 描述
"type": "基本应用", // APP 分类
"action": [ // APP 动作列表
{
"name": "HelloWorld", // APP 动作名称
"func": "hello_world" // 动作对应的函数名
},
{
"name": "test", // APP 动作名称
"func": "app_test" // 动作对应的函数名
}
],
"args": { // 动作参数
"hello_world": [ // 动作对应的函数名
{
"key": "name", // 动作参数名
"type": "text", // 动作参数类型
"required": true // 是否是必填项
}
],
"app_test": [ // 动作对应的函数名
{
"key": "name", // 动作参数名
"type": "text", // 动作参数类型
"required": true // 是否是必填项
},
{
"key": "sex", // 动作参数名
"type": "text", // 动作参数类型
"required": true // 是否是必填项
}
],
}
}
参数支持5种类型
类型 说明
text 文本输入框
password 密码输入框
textarea 多行文本输入框
number 数字输入框
select 下拉选择框
参数支持默认,是否必填
"args": { // 动作参数
"app_demo": [ // 动作对应的函数名
{
"key": "name", // 动作参数名
"type": "text", // 动作参数类型
"default": "W5", // 参数默认值,不写默认为空
"required": true // 是否是必填项
},
{
"key": "age", // 动作参数名
"type": "number", // 动作参数类型
"default": 18, // 参数默认值,不写默认为空
"required": true // 是否是必填项
},
{
"key": "desc", // 动作参数名
"type": "textarea", // 动作参数类型
"required": true // 是否是必填项
},
{
"key": "type", // 动作参数名
"type": "select", // 动作参数类型
"default": "test", // 参数默认值,不写默认不选择
"data": [ // 下拉列表
"test",
"test2",
"test3",
"test4"
],
"required": true // 是否是必填项
}
]
}
2.app图标
图标名称 icon.png 不可改变
图标大小 200 x 200
3.app代码run.py
#!/usr/bin/env python
encoding:utf-8
import json
from loguru import logger
async def hello_world(name):
logger.info("[Hello World] APP 执行参数为: {name}", name=name)
try:
a = json.loads(name)
except Exception as e:
a = name
return {"status": 0, "result":a }
async def app_test(name,sex):
logger.info("[Hello World] APP 执行参数为: {name},{sex}", name=name,sex=sex)
return {"status": 0, "result":name+sex}
4.readme.md说明文件
按照参数和类型写就好
5.w5的开发规范请看https://w5.io/help/dev/dev5.html
1. 获取上一个app的结果@(对应app的uuid.result)
2. 获取上一个app的参数结果@(对应app的参数字段名.result)
3.获取app结果是json数据,json数据里面某个键的内容@(对应app的uuid.result!>键字段)
一些其他json的使用方法https://w5.io/help/use/use7.html
for介绍https://w5.io/help/use/use9.html
1.类型可选字典,数组,次数
循环数据放需要循环的内容,注意格式需要和类型一致
2.下个app使用方法
数组变量:@(uuid.value)
字典变量:@(uuid.key) @(uuid.value)
数字变量:@(uuid.value)
if的介绍https://w5.io/help/use/use2.html
没学会,有学会的可以教教我