【乐吾乐2D可视化组态编辑器】后端API接口文档

news2024/11/16 10:14:58

后端API接口文档

乐吾乐2D可视化组态编辑器demo:https://2d.le5le.com/  

采用前后端分离架构,乐吾乐后端服务提供一整套完整的web组态编辑器的所有数据接口,包含2D/3D图纸接口服务、文件接口服务和用户接口服务等,安装包版本提供后端可执行程序文件,后端源码版提供Java源码。用户也可以自行按照接口文档去实现部分必要的接口,参考接口文档如下:

注意:下面是官方meta2d自己的服务接口。自己开发的接口与meta2d-vue组件依赖的格式不一定完全相同,请根据实际情况转换为所需要的数据格式。

默认:所有接口调用失败时,返回{ error: '错误原因'}。正确时,直接返回所需数据,不再需要error字段。故所有接口返回通过返回是否有error字段判断。

接口列表

登录(购买乐吾乐后端)

URL:

/api/account/login

Method:

POST

Body:

{
  "account": "XXX",
  "password": "XXX",
  "remember": "true",// 是否系统记住密码
}

Copy

返回:


{
  "account": "xxx"
  "password": "xxx"
  "token": "xxx", //token用于后续的认证
  "username": "xxx"
  //...
}

Copy

获取登录信息

URL:

/api/account/profile

Method:

GET

Headers:
Authorization -  自动读取cookie为token的值给Authorization,可用于登录/身份认证

返回

{
  "id":"le5le", 	
  "account":"", // 账号
  "username":"乐吾乐", // 用户名
  "email":"",
  "phone":"", // 手机号
  "vip":"", // vip到期时间
  "vipData":{
    "2d":"",
    "3d":"",
    "v":""
  }
  "teams":[
    {
        "id":"",
        "name":""
    }
  ],
  "createdAt":"", // 创建时间
  "updateAt":"" // 最后更新时间
}

Copy

获取图纸/自定义组件列表

URL:

/api/data/${collection}/list

其中,${collection}为变量,变量值如下:

  • 2d - 图纸
  • 2d.component- 自定义组件

Method:

POST

Query

current - 当前第几页,默认1

pageSize - 每页记录数,默认10

返回

{
  "list":[ //列表数据
    {
      "createAt":"", //创建时间
      "folder":"", // 文件夹名
      "id":"", // id
      "image":"", // 缩略图
      "name":"", // 图纸名
      "ownerId":"", // 拥有者id
      "ownerName":"", // 拥有者用户名
      "shared":false, // 是否共享
      "star":0, // 收藏数
      "updatedAt":"", // 最后更新时间
      ...
    }
    ...
  ],
  "total":10 // 数据总数
}

Copy

新增图纸/自定义组件

URL:

api/data/${collection}/add

其中,${collection}为变量,变量值如下:

  • 2d - 图纸
  • 2d.component - 自定义组件

Method:

POST

Body

{
    "component": false, // 是否为组件
    "data": { // 画布数据
        "x": 0, // 画布偏移量x
        "y": 0, //画布偏移量y
        "scale": 1, // 画布缩放值
        "pens": [ // 画布图元数据
           ...
        ],
        "origin": {
            "x": 0, // 画布原点x
            "y": 0  // 画布原点y
        },
        "center": {
            "x": 0, // 画布缩放中心点x
            "y": 0  // 画布缩放中心点y
        },
        "paths": {}, //存储无法解析的svgPath
        "template": "", 
        "componentDatas":[],// 组合图元数据
        "component": false, // 是否为component
        "ruleColor": "", // 尺子颜色
        "gridColor": "", // 网格颜色
        "gridSize": 20, // 网格大小
        "color": "", // 画笔颜色
        "activeColor": "", // 激活图元颜色
        "version": "" // 版本号
      	...
    },
    "name": "", // 图纸名
    "image": "", // 图纸缩略图
    "folder": "" // 文件夹
}

Copy

返回

{
		"id":"",//图纸/自定义组件id
		"data":{}, // 组件/图纸数据
		"editorId":"", // 编辑者id
    "editorName":"", // 编辑者name
    "folder":"", // 所处文件夹
    "image":"", // 缩略图地址
    "ownerId":"", // 拥有者id
    "ownerName":"", // 拥有者name
    "share":false, // 是否分享
    "updateAt":"", // 最后更新时间
    "createdAt":"" // 创建时间
}

Copy

修改图纸/自定义组件数据

URL:

/api/data/${collection}/update

其中,${collection}为变量,变量值如下:

  • 2d - 图纸
  • 2d.component - 自定义组件

Method:

POST

Body

同“新增图纸”接口,此时有id

返回

同“新增图纸”接口

获取图纸/自定义组件数据

URL:

/api/data/${collection}/get

其中,${collection}为变量,变量值如下:

  • 2d - 图纸
  • 2d.component - 自定义组件

Method:

POST

Body

{
  "id": "图纸/自定义组件id"
}

Copy

返回
同“新增图纸”接口

删除图纸/自定义组件

URL:

/api/data/${collection}/delete

其中,${collection}为变量,变量值如下:

  • 2d - 图纸
  • 2d.component - 自定义组件

Method:

POST

Body

{
  "id": "图纸/自定义组件id"
}

Copy

返回

{
  "error": "错误" // 没有error字段,表示执行正确。有error表示执行错误,error为错误原因
}
或者
{
  "id":""// 图纸/自定义组件id 
}

Copy

获取所有图纸/组件文件夹

URL:

/api/data/directory/list

Method:

POST

Body

{
   "fullpath":"/2D/图纸" // 获取文件夹路径
}

Copy

返回

{
  total: 总数,
  list: [...]
}

Copy

获取所有图纸/组件信息

URL:

/api/data/${collection}/list

其中,${collection}为变量,变量值如下:

  • 2d - 图纸
  • 2d.component- 自定义组件

Method:

POST

param

{
   	"current":1,
    "pageSize":1000 
}

Copy

返回

{
		"list":[
      {
        "image":"",//组件保存时生成的缩略图
        "name":"",//组件名
        "id":"" //组件数据id
        "owner":"", // 拥有者
        "editor":"", // 编辑者
        "updatedAt":"", // 最后更新时间
        "createdAt":"", // 创建时间
        ...
      }
   	],
  	"total":10, // 数据总数
}

Copy

修改图纸/组件文件夹名称

URL:

/api/directory/update

Method:

POST

Body

{
  "newFullpath": "/2D/图片/newName"
	"oldFullpath": "/2D/图片/oldName"
}

Copy

返回

{}

Copy

添加图纸/组件文件夹

URL:

/api/directory/add

Method:

POST

Body

{
  "fullpah":"/2D/图纸/newFolder" // 文件夹路径
}

Copy

返回

{
  "id":"", // 文件夹id
  "createdAt":"", // 创建时间
  "fullpath":"", // 文件夹路径
  "ownerId":"", // 拥有者id
  "updatedAt":"" // 最后更新时间
}

Copy

删除图纸/组件文件夹

URL:

/api/directory/delete

Method:

POST

Body

{
  "fullpath":["/2D/图纸/path"], //删除的文件夹路径
	"physically": true, //是否物理删除
}

Copy

返回

{
  "directories": ["/2D/图纸/path"], // 删除的文件夹路径
  "files": [] // 文件列表
}

Copy

获取组件图片列表

URL:

/api/file/list

Method:

POST

Query

current - 当前第几页,默认1

pageSize - 每页记录数,默认10

Body

{
	"type": "图片", // 文件类型,默认为'图片'
   "directory": "/2D", // 指定的获取哪个文件夹下的图片,默认为'/2D',例如:'/2D/新建文件夹'
   "allChildren": false  // 是否获取该文件夹下(包括子文件夹)所有图片
}

Copy

返回

{
   "total":1,//总数
   "list":[{
      "fullname":"", //图片完整名路径
      "size":18546, //图片数据长度
      "directory": "", //文件夹路径
     	"deleteAt":0
      "name": "", // 文件名
      "shared": true,
      "url": "", // 文件路径 
      "type": "",
      "ownerId": "",
      "ownerName": ""
     ...
   }]
}

Copy

上传图片

URL:

/api/image/upload

Method:

POST

FormData

  • filename:string 文件名
  • shared:string 是否共享
  • type:string 类型,'图片'
  • file:Blob 文件二进制
  • conflict: string directory+name如果存在,处理方式:默认(不传)覆盖;new - 自动重命名为一个新文件;其他 - 不做任何操作,返回报错
  • directory:string 文件存放文件夹,例如:'/2D/缩略图'

返回

{
    "fullname":"", //图片完整路径名
    "url":"", //图片url
    "id":"", // 图片id
    "directory":"", // 所处文件夹
    "name": "", // 图片名称
    "shared":true, // 是否共享
    "type":"图片",
    "size":2179, // 图片大小
    "ownerId":"", // 拥有者id
    "ownerName":"", // 拥有者name
    "updatedAt":"" // 最后更新时间
    "createdAt":"" // 创建时间
}

Copy

删除图片

URL:

/api/files/delete

Method:

POST

Body:

{
  "fullnames":["/2024/0112/1/1/1"],// 文件完整路径
  "physically":fasle  // 是否物理删除
}

Copy

返回

{
  "recycled":["/2024/0112/1/1/1"] // 被删除文件的路径
}

Copy

获取素材或png、svg分组列表

URL:

/api/assets/folders

Method:

POST

Body:

{
	"path":"png" | "svg" // 获取png或者svg分组列表
}

Copy

返回

{
  "list": [
    "2.5D-制冷站",
    "2.5D-废气治理",
    "2.5D-废水处理",
    "2.5D-智慧城市",
    "2.5D-电信机房",
    "2.5D-采暖系统",
    "官网使用图片",
  ],
}

Copy

获取素材或png、svg文件列表

URL:

/api/assets/files

Method:

POST

Body:

{
	"path":"png" | "svg" // 获取png或者svg文件列表
}

Copy

返回

{
  "list": [
   "svg/SVG国家电网/T型开关A -C.svg",
    "svg/SVG国家电网/T型开关A-B.svg",
    "svg/SVG国家电网/T型开关AB-C.svg",
    ...
  ],
}

Copy

获取待绑定的变量列表树

URL:

/api/device/data/tree?mock=1

Method:

GET

返回:

[{"children":[
  {"children":[
    {"id":"d-1-a-001","name":"车辆"},
    {"id":"d-1-a-002","name":"访客"}
    ],
    "id":"device-001-a",
    "name":"园区大门"
  },
  {
    //...
  }],
  "id":"device-001",
  "name":"新智慧园区"
},{
    //...
  }]

Copy

获取绑定变量数据

自定义,支持mqtt、websocket、http。在图纸的通信中输入实际地址即可

返回:

[
  {"dataId": "device-001", "value": 71},
  {"dataId": "device-001-a", "value": 21},
  {
    //...
  }
]

Copy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1993610.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 文件系统、动静态库

个人主页:仍有未知等待探索-CSDN博客 专题分栏: Linux 目录 一、文件系统 1、了解磁盘的存储结构 1.基本知识 2.磁盘中盘片为什么高速旋转? 3.磁头为什么要左右摇摆? 4.如何找到一个指定位置的扇区? 5.文件在磁盘…

英语口语成人英语生活英语口语表达四六级英语培训柯桥小语种学习

全红婵向外国人展示金牌夺冠后,全红婵向外国友人展示金牌。视频中,一位外国男子对全红婵说:“How are you?”全红婵回应:“Good!Good!全红婵比出“拿捏”手势对方说全红婵是奥运冠军&#xff0c…

使用es-hadoop同步hive和es之间数据

💻近期在华为云连接es时的时候发现不能输入账号密码,后面联系华为工程师了解到,华为云默认是非安全模式,即不需要输入账号密码。 如果对你有所帮助,欢迎点赞收藏关注不迷路哦💓 目录 使用es-hadoop同步h…

CentOS7.6 服务器负载均衡——LVS-DR实战案例

目录 1、前期环境准备 1.准备两台主机 1. 设置主机名 2. 设置IP地址然后重启网卡 3. 关闭防火墙和selinux 二、配置LVS服务器 1. LVS准备VIP和路由 2. 设置路由转发 3. LVS设置负载均衡条目/规则 1. 设置IPVSADM 4. LVS让配置永久生效: 三、设置WEB集群 …

spring操作数据库

xml版 程序结构 配置文件 dbUtil-阿帕奇提供操作数据库的插件 核心类&#xff1a;QueryRunner .query() 查询 .update() 增删改 <dependencies><!-- spring --><dependency><groupId>org.springframework</groupId><artifactId>spri…

【Unity编辑器】EditorWindow的使用

文章目录 前言创建一个Editor窗口Unity引擎目前中焦的窗口Editor窗口鼠标悬停Editor窗口场景编辑更改监听主窗口停靠下最大化窗口设置窗口的小图标获取中焦窗口Window.ShowNotificationWindow.SendEventEditorWindow.OnHierarchyChange()EditorWindow.OnProjectChange() 前言 …

谷歌搜索垄断案:历史是否会重演微软的宿命?

美国法官在本周一作出裁决&#xff0c;确认Google在搜索市场拥有垄断地位&#xff0c;并援引了二十多年前的微软案作为参考。卡多佐法学院的法学教授Sam Weinstein&#xff0c;也曾是司法部反垄断律师&#xff0c;他指出政府始终在明示或暗示地将本案建立在微软案的基础上。面对…

Unity效果优化之抗锯齿

Unityde 基于HDRP渲染管线的抗锯齿处理的设置参考图&#xff1a; 前提&#xff1a;需要导入HDRP的插件包才行&#xff0c; 该参数设置能保证在PC版上抗锯齿效果非常好&#xff0c; 英文版&#xff1a;

《向量数据库指南》——向量搜索:从简单到复杂,生产级部署的挑战与策略

向量搜索并非轻而易举! 向量搜索,也称为向量相似性搜索或最近邻搜索,是一种常见于 RAG 应用和信息检索系统中的数据检索技术,用于查找与给定查询向量相似或密切相关的数据。业内通常会宣传该技术在处理大型数据集时非常直观且简单易用。一般来说,您只需将数据输入到 Embed…

k8s—Prometheus+Grafana+Altermaneger构建监控平台

目录 一、安装node-exporter 1.下载所需镜像 2.编写node-export.yaml文件并应用 3.测试node-exporter并获取数据 二、Prometheus server安装和配置 1.创建sa(serviceaccount)账号&#xff0c;对sa做rabc授权 1&#xff09;创建一个 sa 账号 monitor 2&#xff09;把 sa …

C++ | Leetcode C++题解之第330题按要求补齐数组

题目&#xff1a; 题解&#xff1a; class Solution { public:int minPatches(vector<int>& nums, int n) {int patches 0;long long x 1;int length nums.size(), index 0;while (x < n) {if (index < length && nums[index] < x) {x nums[i…

系统时间的获取 | 文件操作相关函数 |报错函数 | makefile

系统uid/gid的获取 1.getpwuid 功能:根据用户id到/etc/passwd文件下解析获得结构体信息 参数:uid:用户id 返回值:成功返回id对应用户的信息 ;失败返回NULL 2.getgrgid 功能:根据gid到/etc/group文件中解析组信息 参数:gid:组id 返回值:成功返回组信息;失败返回NULL 系统时间的…

【新械专栏】球囊型冷冻消融导管获批上市

近日&#xff0c;国家药品监督管理局批准了上海安钛克医疗科技有限公司“球囊型冷冻消融导管”创新产品注册申请。 该产品由球囊型冷冻消融导管、手动回缩器组成&#xff0c;与特定冷冻消融仪联合使用&#xff0c;用于治疗成人患者药物难治性、复发性、症状性的阵发性房颤。 该…

Python中的 `break` 语句:掌握循环控制的艺术

Python中的 break 语句&#xff1a;掌握循环控制的艺术 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主简介&#xff1a;985高校的普通本硕…

Go语言内存管理:从理论到实战

1. 引言 1.1 内存管理的重要性 内存管理是编程中的一个重要环节&#xff0c;它涉及到内存的分配与释放&#xff0c;对于程序的性能和稳定性有着至关重要的影响。不当的内存管理会导致内存泄漏、内存溢出等问题&#xff0c;从而影响程序的正常运行。特别是在大型项目中&#xf…

ttwid、x-bogus、a-bogus、msToken、byted_acrawler等直播参数说明和获取方式

可以参考开源项目&#xff1a;https://github.com/Sjj1024/douyin-live 桌面端的直播间项目&#xff1a;https://github.com/Sjj1024/LiveBox ttwid参数 ttwid类似客户端id&#xff0c;即便是游客模式&#xff0c;也可以对页面数据进行埋点统计&#xff0c;通过收集ttwid下的…

R9000P 双系统安装 win11 和 ubuntu

网上了解到一堆关于 r9000p 安装较老的ubuntu系统&#xff0c;会有一堆问题 可能是电脑硬件比较新&#xff0c;较老的系统相关方面不兼容 那么干脆直接装新一点的系统 我安装了 Ubuntu 22.04 1 根据相关教程利用u盘制作系统盘 ultraISO 推荐使用清华源 速度快一点 https://…

【Linux】系列入门摘抄笔记-5-管理、创建、移动文件目录及文件搜索命令

touch 创建新的空文件 touch [选项] [参数] 描述:创建新的空文件,可以一次性创建多个文件。touch命令还可以用于修改文件的时间属性,不加时间戳则默认修改为当前时间。 如果文件不存在,则会建立空文件,如果文件已存在,则会修改文件的时间戳。 在linux中,文件没有创建时…

MTK Android12 SystemUI 手势导航 隐藏导航栏底部布局

问题:android12 平台手势导航情况下,app页面未设置全屏情况下,底部导航栏会有一个高度的颜色,底部导航会有一个手势导航提示条 需求:去掉手势导航情况下底部的导航栏和手势提示条 文章目录 相关资源修改问题描述解决方案代码跟踪中间提醒小方块代码查找底部手势导航条跟踪…

Dell R750 R760 H755安装SuSE12SP5 并识别Intel E810 NIC

新的机器对老的版本的OS支持不是非常好&#xff0c;好在有一些方法是可以获得老的驱动&#xff0c;并可以进行安装的。 1 需要有H755阵列卡对应的驱动 这里可以在博科的网站上进行下载&#xff0c;里面是有相关的驱动 截一些图片 按e键进行操作 后续继续安装即可,安装 安装…