2022/05/07

S3DWebAPI是什么,能做什么

作者 Leon

S3DWebAPI从2018版本开始,不支持低于这个版本的S3D。轻量化,兼容性更好的Web端应用已经是一个趋势,很多公司都在开发各种前端平台,前端的开发技术相对也比较成熟和统一,人才也好找,所以如果我们想在前端更好地去管理和呈现各类设计工具,就需要各类设计工具提供相应的WebAPI,这也是前后端分离的一个典型应用场景。几年前,鹰图就发布了Smar API Manager,为了统一管理各个设计工具的WebAPI,以及认证方式的加强。下面我们就来看看S3D的WebAPI都能做哪些事情吧。

首先目前鹰图所有设计工具的WebAPI都属于OData RESTful类型的API,采用了统一的设计规范,了解其中一款后,其他基本类似。它们的本质就是一个服务,前端应用发送请求,后台服务响应请求,获取相关数据,以json的形式返回给前端。

https://Host/WebApp/s3d/v1/Sites(‘Site Alias’)/Plants(‘Plant Name’)/Remaining Resource
Path/Query Options

查询3D的各类数据,这应该是S3DWebAPI最主要的作用了。利用GET方法和一些参数,我们能得到几乎3D里的所有数据。例如,我们查询某根具有特定公称直径的PipeRun,就可以像下面这样写请求URL。
GET https://MyServer.domain.com/WebApp/s3d/v1/Sites(‘MyS3DSiteAlias’)/Plants(’MyS3dPlant’)/PipingRuns?$filter=NPD eq 4

API里还内置了一些POST方法,可以执行3D内的一些对象,比如ExecuteS3dFilter,根据某个3D内的已有过滤器查询对象,ExecuteReports,运行3D内的Report模板。另外还可以查询某个3D对象存在于哪些图纸中,某张图纸中包含有哪些3D对象。预览和下载图纸,报告等。

接下来的一个重要功能就是写入属性了,在我们的API里这个请求的方法叫PATCH,可以针对某一个对象进行属性写入,也可以批量写入。

POST https:/MyServer.Domain.com/s3d/v1/Sites(‘MySiteAlias’)/Plants(‘MyPlant’)/Com.Ingr.Smart3d.V1.BulkUpdate
{
“ids”: [
“{0000272E-0000-0000-1F04-B0E9B7541306}”,
“{0000272E-0000-0000-1F04-B0E9B7541307}”
],
“properties”: {
“StringPropName”: “MyStringValue”,
“IntPropName”: 1
},
“shouldCommitInErrorState”: false
}

另外,从V13版本开始,3D的WebAPI还增加了Admin模块,这个模块就提供了更多高级方法,能做的事情就更多了,例如创建Site,Plant,Catalog,升级项目,备份和恢复项目,重生成RDB,增删改接口,属性,Codelist。

用户只需将精力集中于业务层面,前端层面,而不是研究各类设计工具的底层和后台,自己花费大量精力编写各类API,就属于本末倒置了。所以鹰图官方的WebAPI也好,中国团队开发的API也好,能够帮助客户快速得开展表现层,业务层的开发就是好东西。

0 0 投票数
文章评分