Skip to Content
技术文档10 · 开发者扩展网关 API
本页目录

开发接口:网关 API 文档

本页汇总 TGateway、Studio 和 Watchdog 常用接口。调用受保护接口前请先完成登录,并在请求中携带有效 Token(登录后拿到的访问凭证)。Studio 的普通语言服务接口允许匿名访问;涉及工程路径的分析仍需认证。

阅读对象

本页不是普通最终用户的主阅读路径,而是系统集成和二次开发参考,用于上位机、MES、SCADA、云平台或自研程序对接。现场电气工程师日常配置和排障通常不需要从 API 开始;采集、调试、数据转发和报警处理请优先阅读对应操作手册。

安全边界

写入变量、重启运行时、修改网络、调整权限、导入配置等接口会影响现场系统。对接程序上线前,应在测试环境验证权限、参数、错误处理和重试策略,并为生产账号分配最小必要权限。

阅读路线:获取接口定义 → 接入与认证 → 接口参考 → 调用排障。MCP 是可选客户端;使用它时再阅读MCP 接入与授权。

接入与认证

接口术语对照

术语现场理解
Token登录后拿到的访问凭证,外部系统每次调用接口时都要携带。
写入变量外部系统或页面向点位下发值,等同于现场常说的“反写点位”。
目标变量属性某个转发目标对单个变量的外部映射,例如外部字段名、Modbus 从站地址、采样策略或写入权限。
转发组变量某个数据转发组里实际包含哪些变量。手动选择范围下,变量先加入转发组,后面的目标变量属性才会生效。
TopicMQTT、Kafka 等消息系统中的主题/路径,外部系统按这个名称接收或订阅数据。

基础约定

项目说明
TGateway 默认地址http://<网关IP>:6100
Studio 默认地址http://<StudioIP>:5100
Watchdog 默认地址http://<网关IP>:6200
数据格式普通接口使用 JSON;文件导入、上传和导出接口使用表单文件或文件流。
认证方式登录后使用 Bearer Token;未授权或 Token 失效时需要重新登录。
返回结果接口通常返回统一结果结构,调用方应根据状态码和消息判断是否成功。

Studio 和 Watchdog 默认监听 0.0.0.0,当前版本允许客户端通过普通 http://IP:端口 调用。使用普通 HTTP 时必须启用远程管理和 AllowInsecureRemoteHttp;Watchdog 的项目部署与进程控制还必须启用 RemoteDeploymentEnabled。

浏览器跨域调用

TGateway 的 Web API 在 CorsOrigins 留空时默认允许任意网页来源,浏览器可从不同域名或端口发起请求。显式填写来源列表后,按完整 Origin 匹配,需包含协议、主机及非默认端口;域名后缀、子串和另一个端口不属于同一来源。

来源许可与接口鉴权分别检查。跨域允许后,受保护接口仍要求有效 Token、角色和 API 权限;浏览器请求中按接口契约发送 Bearer Token。服务端程序不受浏览器 CORS 机制限制,也仍需通过对应鉴权。

服务当前来源与认证约定
TGateway Web API默认允许任意来源;配置来源列表时按列表匹配,接口自身的认证和授权保持有效。
Studio /api/completion/*允许任意来源、方法和请求头,普通语言请求可匿名访问;带工程路径的请求先认证。
Studio 管理接口使用 Studio 的来源、远程管理和登录设置,不能按匿名语言接口的规则调用。

语言服务默认地址为 https://roslyn.thingsgateway.cn,自建 Studio 使用自己的根地址。反向代理需要转发允许来源响应头,并让 OPTIONS 预检到达服务或返回等价响应。不要把 HTTP 200 单独当作浏览器调用成功:检查正文是预期 JSON,并确认响应中有匹配的 Access-Control-Allow-Origin,以及预检允许实际方法和请求头。

例如在命令行检查语言服务的来源响应:

# 使用实际 Gateway 网页的 Origin 检查响应头及 JSON。 curl -i \ -H 'Origin: http://192.168.10.30:6100' \ https://roslyn.thingsgateway.cn/api/completion/assemblies

普通语言响应应包含 Access-Control-Allow-Origin: *。该模式不授予浏览器跨站 Cookie 凭据权限,调用方不要依赖跨站 Cookie 完成认证。最终仍从实际 Gateway 编辑器检查连接、补全和分析,详见代码编辑器操作。

获取 OpenAPI JSON

TGateway 提供标准的 OpenAPI JSON 文档,可通过以下地址获取:

GET http://<网关IP>:6100/api/openapi.json

也可以使用 curl 将文档保存为本地文件:

curl http://<网关IP>:6100/api/openapi.json -o openapi.json

返回的 JSON 可导入 Swagger Editor、Postman 或其他支持 OpenAPI 的客户端和代码生成工具。接口定义以目标 TGateway 当前版本返回的文档为准。

Studio 与 Watchdog 登录密码加密

调用 Studio 或 Watchdog 登录接口时,先获取临时公钥,再加密密码并提交:

  1. 调用对应的公钥接口,获取 keyId、publicKey、algorithm、nonce 和 expiresAt。
  2. 确认 algorithm 等于 RSA-OAEP-SHA256。
  3. 使用 publicKey 中的 RSA 2048 SubjectPublicKeyInfo DER Base64 公钥,加密以下 UTF-8 JSON。字段名大小写固定。
{ "Password": "实际密码", "Nonce": "公钥响应中的nonce" }
  1. 将 RSA-OAEP-SHA256 密文进行 Base64 编码,作为登录请求的 password;同时把 keyId 作为 passwordKeyId 提交。
  2. 登录成功后,后续受保护请求统一发送 Authorization: Bearer <token>。

临时公钥有效期为两分钟,每次只能提交一次登录请求。请求成功或失败后,该公钥都会失效;重试时必须重新获取公钥。接口只接受上述加密格式。

浏览器客户端可以在普通 HTTP IP 页面中使用 node-forge 执行 RSA-OAEP-SHA256,并使用 crypto.getRandomValues 生成 OAEP 随机种子;不要依赖该场景通常不可用的 crypto.subtle.importKey。

HTTP 安全边界

登录密码加密只保护密码字段。通过普通 HTTP 访问时,访问令牌、修改密码请求、工程包、备份和其他业务数据仍以明文传输。公网或不可信网络应使用 HTTPS。

TGateway 认证接口

方法路径用途
GET/api/auth/GetLoginPasswordPublicKey获取登录密码加密公钥
POST/api/auth/Login用户登录
POST/api/auth/RefreshToken刷新 Token
POST/api/auth/ChangePassword修改当前用户密码
POST/api/auth/Logout注销当前会话
POST/api/auth/LogoutAll注销当前用户全部会话
POST/api/auth/Me获取当前用户信息
POST/api/auth/GetMyMenus获取当前用户可访问菜单
POST/api/auth/GetUserPermissions获取当前用户权限
GET/api/auth/GetRuntimeConfig获取登录页运行时配置

外部身份与单点登录

方法路径用途
POST/api/identity/GetLoginOptions获取当前管理域与用途允许的登录入口
POST/api/identity/Start、/api/identity/Complete发起浏览器授权并在原浏览器兑换短期完成码
POST/api/identity/GetMyAccounts获取当前用户的外部账号
POST/api/identity/Reauthenticate、/api/identity/UnlinkMyAccount确认当前身份并解除个人关联
POST/api/identity/GetMySessions、/api/identity/RevokeMyOtherSessions查询当前用户会话、撤销其他设备会话
POST/api/identity/LogoutProvider退出本应用及支持的身份平台
POST/api/adminidentity/GetProviders、SaveProvider、CheckProvider、PublishProvider查询、保存、检查与发布身份提供商
POST/api/adminidentity/GetHostSettings、SaveHostSettings读取和保存公开站点地址
POST/api/adminidentity/GetPolicy、SavePolicy读取和保存登录策略

外部身份流程要求同源浏览器、原流程状态和相应用途;不要把短期完成码当作访问令牌。操作步骤见身份认证与单点登录。

TGateway 接口参考

系统监控

方法路径用途
GET/api/systemmonitorcontroller/getmemory、gethealth、getsnapshot读取进程内存、健康与完整资源快照
GET/api/systemmonitorcontroller/getenvironment读取操作系统、运行时与 GC 环境
GET/api/systemmonitorcontroller/getfrontendpackages、getbackendpackages读取当前前后端发布包清单
POST/api/systemmonitorcontroller/probenetwork检测指定上游主机和 TCP 端口
POST/api/systemmonitorcontroller/collectgarbage按权限提交手动 GC 请求

快照可能复用 30 秒内的样本。监控查看、包清单和手动 GC 按对应权限检查;请求 GC 不保证立即降低工作集。指标口径和页面操作见系统监控与内存分析。

状态与调试 WebSocket

  1. 携带当前 Bearer 令牌调用 POST /api/gatewaywebsocketcontroller/createstatusticket 或 createdebugticket,分别申请状态或只读调试连接票据。
  2. 在 30 秒内使用票据建立 /ws/gateway/status?ticket=<票据> 或 /ws/gateway/debug?ticket=<票据> 连接;HTTPS 站点使用 wss。
  3. 每张票据只能消费一次,状态与调试用途不能互换。重连前重新申请,不能复用已消费或过期票据,也不在连接地址中传入长期访问令牌。

状态票据需要变量读取权限,调试票据需要调试查询权限;取得票据不授予写入权限。

TGateway 总览与元数据

方法路径用途
GET/api/gatewayoverviewcontroller/getgatewaytotal获取通道、设备、变量、报警统计
GET/api/gatewayoverviewcontroller/getcollectdevices获取采集设备概览
GET/api/gatewayoverviewcontroller/getchanneldevice按设备获取所属通道和设备摘要
GET/api/gatewayoverviewcontroller/getofflinedevices获取离线设备列表
POST/api/gatewayoverviewcontroller/inserttestdata、inserttestdtudata生成演示采集数据或 DTU 演示数据
POST/api/gatewayoverviewcontroller/getchannelstatuspagelist分页获取通道状态
POST/api/gatewayoverviewcontroller/getdevicestatuspagelist分页获取设备状态
POST/api/gatewayoverviewcontroller/getvariablestatuspagelist分页获取变量状态
GET/api/gatewaysystemcontroller/getsysteminfo获取 CPU、内存、磁盘、运行时等系统信息
GET/api/gatewayprojectcontroller/getprojectinfo获取当前工程信息
GET/api/gatewayplugincontroller/getplugincatalog?pluginType=Collect、?pluginType=DataForward获取完整插件目录,可按插件类型筛选
GET/api/gatewaymetadatacontroller/getchanneltypes?pluginName=<采集插件完整名>获取采集插件支持的通道类型;设备编辑页据此判断“所属通道”是否必填
GET/api/gatewaymetadatacontroller/getchannelselectlist获取通道下拉列表
GET/api/gatewaymetadatacontroller/getdeviceselectlist获取设备下拉列表
GET/api/gatewaymetadatacontroller/getvariableselectlist获取变量下拉列表
GET/api/gatewaymetadatacontroller/getdatatypes、getdriverpropertyinfo、getaddressdescription获取采集插件数据类型、属性定义和地址说明
GET/api/gatewaymetadatacontroller/getdataforwardtargetpropertyinfo、getdataforwardvariablepropertyinfo获取数据转发目标属性和目标变量属性定义

采集配置接口

对象主要路径用途
通道/api/channelcontroller/addchannel、updatechannel、deletechannel、batcheditchannel、copychannel通道新增、编辑、删除、批量编辑、复制
通道导入导出/api/channelcontroller/channelexcelexport、channelpageexcelexport、channelexcelimport通道 Excel 导入导出
设备/api/devicecontroller/adddevice、updatedevice、deletedevice、batcheditdevice、copydevice设备新增、编辑、删除、批量编辑、复制
设备导入导出/api/devicecontroller/deviceexcelexport、devicepageexcelexport、deviceexcelimport设备 Excel 导入导出
变量/api/variablecontroller/addvariable、updatevariable、deletevariable、batcheditvariable、copyvariable变量新增、编辑、删除、批量编辑、复制
变量导入导出/api/variablecontroller/variableexcelexport、variableexcelimport、gatewaydataexcelexport、gatewaydataexcelimport变量和网关配置导入导出
写入变量/api/gatewaywritevariablecontroller/setvariablevalue写入变量值

插件方法 RPC

POST /api/gatewayrpccontroller/invokepluginmethod 使用 Bearer Token 和 rpc:invoke_plugin_method API 权限,执行被调用实例已允许的直接方法,无需变量绑定。

{"subjectType":"CollectDevice","subjectId":1001,"methodName":"ReadAsync","parameters":["400001","UInt16",1],"timeoutMs":30000}

subjectType 还可为 DataForwardTarget。将 subjectId 替换为实际设备或目标编号,并开启其“允许方法调用”。没有额外方法白名单、业务请求编号、去重或方法并发配额。统一响应的 data 包含 status、isSuccess、operCode、message、content、executionTime 和 executionMayHaveOccurred;业务成功与 HTTP 成功分别检查。

调试接口 POST /api/debugController/invokespecialmethod 继续要求危险调试权限,请求使用 subjectType、subjectId、methodName、parametersJson。其中 parametersJson 是位置数组的 JSON 文本,响应的 contentJson 也是完整 JSON 文本,消费端应保留数值精度。正式接口使用真正的 parameters JSON 值,两者不能混填。

MQTT 固定方法主题、UA 原生 Method、参数约定、超时和日志见插件方法调用。

数据转发接口

方法路径用途
GET/api/gatewaydataforwardcontroller/getgroups获取转发组
GET/api/gatewaydataforwardcontroller/gettargets获取转发目标
POST/api/gatewaydataforwardcontroller/getgroupvariablespage分页获取单个转发组变量关系
GET/api/gatewaydataforwardcontroller/getgroupvariable、getgroupvariableoptions获取单条组变量关系或远程搜索组内变量
POST/api/gatewaydataforwardcontroller/gettargetvariablepropertiespage分页获取单个目标变量属性
GET/api/gatewaydataforwardcontroller/gettargetvariableproperty、getconfigurationcounts获取单条目标变量属性或导航计数
GET/api/gatewaydataforwardcontroller/getruntime获取数据转发运行状态
POST/api/gatewaydataforwardcontroller/addgroup、updategroup、deletegroup、restartgroup转发组维护
POST/api/gatewaydataforwardcontroller/addtarget、updatetarget、deletetarget、restarttarget转发目标维护
POST/api/gatewaydataforwardcontroller/switchtargetredundant手动切换转发目标冗余状态
POST/api/gatewaydataforwardcontroller/savegroupvariablechanges增量保存转发组变量修改和删除项
POST/api/gatewaydataforwardcontroller/upserttargetvariableproperty、deletetargetvariableproperty保存或删除目标变量属性
POST/api/gatewaydataforwardcontroller/getgrouplog、gettargetlog查询转发运行日志
POST/api/gatewaydataforwardcontroller/updategrouploglevel、updatetargetloglevel调整转发组或转发目标日志级别
POST/api/gatewaydataforwardcontroller/exportgrouplog、exporttargetlog导出转发运行日志
POST/api/gatewaydataforwardcontroller/dataforwardexcelexport、dataforwardexcelimport数据转发配置导入导出

数据转发接口中,转发组变量关系决定变量是否属于某个转发组;目标变量属性只描述某个目标如何使用该变量。组变量关系和目标变量属性均按单组或单目标分页读取,页面最大为 200 条;组内变量远程候选最多返回 50 条。手动选择范围下,保存目标变量属性前应先通过 savegroupvariablechanges 把变量加入转发组。

数据查询与实时报警接口

方法路径用途
POST/api/gatewayrealdatacontroller/GetRealDataRecordsByTarget查询实时数据记录
GET/api/gatewayrealdatacontroller/GetRealDataTargetNames获取实时数据目标
POST/api/gatewayrealdatacontroller/ExportRealDataRecords导出实时数据记录
POST/api/gatewayhisdatacontroller/GetHisDataRecordsByTarget查询历史数据记录
POST/api/gatewayhisdatacontroller/GetHisNumberDataRecordsByTarget查询历史数值数据
POST/api/gatewayhisdatacontroller/GetTypedHisDataRecordsByTarget、GetTypedHisNumberDataRecordsByTarget按 UTC 时间范围、变量集合、分页和白名单排序查询类型化历史记录
POST/api/gatewayhisdatacontroller/GetHisNumberSeriesByTarget查询 Auto、Raw、Average、Minimum、Maximum、First、Last 等模式的历史数值序列
GET/api/gatewayhisdatacontroller/GetHisDataTargetNames获取历史数据目标
POST/api/gatewayhisdatacontroller/ExportHisDataRecords、ExportHisNumberDataRecords导出历史字符串或数值数据
POST/api/customsqldatacontroller/GetCustomSqlDataByTarget查询自定义 SQL 历史数据
GET/api/customsqldatacontroller/GetCustomSqlColumns获取自定义 SQL 列
POST/api/customsqldatacontroller/ExportCustomSqlData导出自定义 SQL 数据
POST/api/gatewayrealalarmcontroller/getrealalarmvariables查询实时报警
POST/api/gatewayrealalarmcontroller/confirmalarm确认实时报警
POST/api/gatewayhisalarmcontroller/GetHisAlarmRecordsByTarget查询历史报警
GET/api/gatewayhisalarmcontroller/GetHisAlarmTargetNames获取历史报警目标
POST/api/gatewayhisalarmcontroller/ExportHisAlarmRecords导出历史报警

历史查询请求契约

历史分页接口使用统一请求字段:

字段说明
targetName已保存并可查询的历史数据转发目标名称。
current页码,从 1 开始。
size每页数量;应使用配置允许的分页上限,不要一次请求全部历史记录。
sortField普通历史表使用 属性名 asc/desc,例如 createTime desc;自定义 SQL 宽表必须使用实际返回列名,例如 event_time desc。切换目标时应清空上一目标的排序字段。
conditionalModel普通历史表的变量 ID、时间范围等条件;自定义宽表的字段名必须存在于目标表。
timeZoneId导出接口使用的时区标识;查询页面的目标时区由目标配置决定。

普通历史接口返回目标配置时区的墙钟时间;类型化历史接口 GetTypedHisDataRecordsByTarget 和 GetTypedHisNumberDataRecordsByTarget 使用 UTC 起止时间并返回 UTC 时间点。自定义 SQL 接口返回目标表的原始列和值:IoTDB、QuestDB 的宽表时间可能带 Z 后缀,表示 UTC,不应重复转换。

自定义 SQL 列查询

调用 /api/customsqldatacontroller/GetCustomSqlColumns?targetName=... 后,以返回的列集合构造表格和筛选条件。第一列是目标时间列,页面使用它进行时间范围和降序查询;其它列由 CustomTemplateConfig.Columns 决定。不要把普通历史表的 CreateTime、VariableId 或 Value 字段强行套到自定义宽表。

自定义 SQL 查询仍返回分页 records 和 total。total 是当前目标、时间范围和条件下的数据库总数,不是当前页 records.length;调用方必须使用服务端总数驱动分页。

查询资源限制

类型化历史查询、数值序列和导出接口受 Configuration/HisDataQueryOptions.json 的变量数、时间跨度、分页大小、序列点数、源记录数和导出行数上限保护。大范围查询应拆分时间窗口或使用序列聚合,不要绕过分页一次拉取百万级原始记录。

类型化历史查询应使用 UTC 起止时间,并受变量数、时间跨度、分页大小、序列点数、源记录数和导出行数上限保护。默认上限在 Configuration/HisDataQueryOptions.json 中维护;集成方应按分页和数值序列聚合能力设计请求,不要通过超大时间范围一次拉取全部原始记录。

MQTT 客户端和 MQTT 服务端生产者还可通过默认主题 RpcHistory 调用同一组历史能力:请求主题为 RpcHistory/<32位十六进制请求号>,响应主题为 RpcHistory/<请求号>/Response。协议支持目标、记录、数值序列、历史报警、确认报警和取消请求;大响应使用 gzip 后 Base64 分块,并受请求体、响应体、分块大小、并发数和超时限制。

设备与转发目标调试接口

模块主要路径用途
调试对象/api/debugController/getsubject、canhandle获取采集设备或转发目标的调试对象和能力
基础读写/api/debugController/read、write、batchread、batchwriteFoundation 类设备地址读写和批量读写
TCP 服务端/api/debugController/gettcpclients、querytcpclients、kicktcpclient获取操作候选、分页查看或踢出 TCP 服务端客户端
OPC UA/api/opcUaController/browse、readnode、writenode、subscribe、unsubscribe、getsubscriptions、readnodeattribute、exportvariables、importtodatabaseOPC UA 节点浏览、读写、订阅和变量导入导出
OPC DA/api/opcDaController/browse、readnode、writenode、subscribe、unsubscribe、getsubscriptions、exportvariables、importtodatabaseOPC DA 节点浏览、读写、订阅和变量导入导出
MQTT Client/api/mqttClientController/publish、subscribe、unsubscribe、getsubscriptionsMQTT 客户端发布、订阅和订阅列表
MQTT Server/api/mqttserverController/getclients、getstats、kickclient、publishMQTT 服务端客户端、Topic 统计、踢出客户端和发布测试
Kafka / RabbitMQ/api/kafkaController/publish、/api/rabbitmqController/publishKafka Topic 或 RabbitMQ Routing Key 发布测试
CAN / ZeroMQ/api/canController/sendFrame、readFrame、/api/zeroMQController/publishCAN 帧收发和 ZeroMQ 发布测试
IEC61850 Client/api/iec61850Controller/GetLogicalDeviceList、GetDataDirectory、ReadValue、WriteValue、BrowseModel、GetConnectionStatus、GetLogicalNodeDirectory、GetReportSubscriptionStatus、GetGooseSubscriptionStatus、GetFileDirectoryPage、ReadJournalPage、ReadDataSet、GetDataSetDirectory、GetControlModel、ControlOperateIEC61850 客户端模型浏览、读写、分页文件/Journal、报告/GOOSE 状态和控制操作
IEC61850 Server/api/iec61850ServerController/GetLogicalDeviceList、GetDataModelTree、BrowseModel、GetConnectionCount、GetConnectedClientsPage、GetCatalogOptions、GetCatalogPage、ReadJournalPage、ReadAttributeValue、WriteAttributeValue、GetServerStatus、GetVariableMapStats、GetUnmappedVariablesPageIEC61850 服务端模型、分页客户端/资源/Journal 和变量映射调试
IEC61850/IEC104 主站 SOE/api/iec61850Controller/GetSoeEvents、ExportSoeEvents;/api/iec104MasterController/GetSoeEvents、ExportSoeEvents查询和导出对应主站实例的 SOE 事件记录

规则、脚本、节点接口

模块主要路径用途
规则流程/api/gatewayruleenginecontroller/getruleflows、getruleflowspaged、getruleflowdetail、saveruleflow、validateruleflow、setruleflowenabled、deleteruleflow、deleteruleflows查询、草稿校验、保存、启停和删除;校验不保存、不执行
规则运行/api/gatewayruleenginecontroller/getruleenginestatus、getflownodevalues、getallflownodevalues、getruleenginelog、exportruleenginelog实际装载实例、节点/连接观察、日志查询和导出
规则导入导出/api/gatewayruleenginecontroller/ruleflowpackageexport、importruleflowpackage导出 JSON 规则包;导入时逐条选择新建、跳过或替换
脚本/api/gatewayscriptcontroller/getscriptlist、createscript、deletescripts、compilescript、compileallscripts脚本分页列表、创建、删除、编译
脚本元数据/api/gatewayscriptcontroller/getregisteredexpressionspaged、getexpressioncategories、getscriptcategories已注册表达式、分类
自定义节点/api/gatewaycustomnodecontroller/getlocalcustomnodes、getcustomnodespaged、createcustomnode、deletecustomnodes、compileallcustomnodes本地与已加载节点分页列表、创建、删除、批量编译
编辑器辅助/api/completion/complete、codecheck、signaturehelp、hover、definition、formatcode脚本和节点编辑器代码提示、检查和格式化

规则定义保存在 DefinitionJson,通过稳定节点类型身份与端口名称表达执行图;画布布局独立保存。POST validateruleflow 返回带节点、端口和连线位置的诊断,启用流程必须通过校验。

POST setruleflowenabled 显式传 id、enabled 和当前 controlRevision。保存和启停返回的 runtimeReloaded、runtimeReloadError 用于区分配置已保存与运行重载结果;不要只凭请求成功认定新实例已经装载。发生版本冲突时重新读取详情再处理。

节点运行值同时包含当前活动、最近执行结果与连接观察。Skipped 表示显式未执行,waitingReason 表示空闲条件;连接最近活动不覆盖上次真实投递结果。具体状态与验证步骤见规则引擎。

插件、证书和系统设置接口

模块主要路径用途
插件/api/gatewayplugincontroller/getplugincatalog、updatepluginenable、batchenableplugins、batchdisableplugins、syncpluginconfigs完整插件目录、启停、同步
证书/api/certificatecontroller/getcertificates、addcertificate、updatecertificate、deletecertificates、generatecertificateauthority、generateservercertificate、generateclientcertificate、exportcertificate、exportprivatecertificate、getcertificateselectlistTAdmin 统一证书查询、上传、更新、删除、生成、导出和下拉选择
报警配置/api/gatewayalarmconfigcontroller/GetAlarmConfig、UpdateAlarmConfig报警恢复策略
冗余/api/gatewayredundantcontroller/getsitecollectstate、GetSiteDataForwardState、getredundancyoptions、setredundancyoptions、switchredundantstate网关采集/转发状态、主备冗余配置和状态切换
网络/api/gatewaynetworkconfigcontroller/getnetworkconfigs、setnetworkconfig网卡配置查询与设置
时间同步/api/gatewaytimecontroller/getsystemtime、setsystemtime、getntpconfig、setntpconfig、syncntptime系统时间和 NTP 配置
系统控制/api/gatewayrestartcontroller/restartgateway、restartruntime、restartapplication重启网关、运行时或应用
备份/api/backupcontroller/backupconfigdatabase备份配置数据库
PING/api/gatewaypingcontroller/pingtest网络连通性测试

证书接口升级

证书管理已迁移到 TAdmin 统一模块。旧 /api/gatewaycertificatecontroller/... 控制器不再是当前接口;调用方必须改用 /api/certificatecontroller/...,同步调整 generatecertificateauthority、deletecertificates 等动作名称以及 certificate:* 权限码。

日志接口

日志类型主要路径
后台日志/api/backendlogcontroller/getbackendlog、getbackendlogsources、getallbackendlog、exportbackendlog、exportallbackendlog
通道日志/api/channelcontroller/getchannellog、updatechannelloglevel、exportchannellog
设备日志/api/devicecontroller/getdevicelog、updatedeviceloglevel、exportdevicelog
操作日志/api/adminsystemlogcontroller/getoperatelog、/api/adminsystemlogcontroller/exportoperatelog
RPC 日志/api/rpclogcontroller/getrpclog、exportrpclog
SQL 日志/api/adminsystemlogcontroller/getsqllog、/api/adminsystemlogcontroller/exportsqllog
审计日志/api/adminauditlogcontroller/getloginaudit、getpermissionaudit、getusersecurityaudit 及对应导出接口

管理权限接口

对象主要路径用途
用户/api/gatewayusercontroller/getusers、adduser、updateuser、setroles、resetpassword、lock、unlock、deleteuser用户生命周期和角色分配
会话/api/gatewayusercontroller/getusersessions、revokesession、setsessionrevoked用户会话管理
角色/api/gatewayrolecontroller/getroles、addrole、updaterole、copyrole、setpermissions、previewpermissiondiff、getpermissioncatalog、getallapimethods、getallbuttons、getrolebyid、deleterole角色和权限维护
菜单/api/gatewaymenucontroller/getmenutree、savemenu、validatemenu、movemenu、setmenuenabled、setmenuvisible、deletemenu菜单树维护
按钮/api/gatewaybuttoncontroller/getbuttons、getbuttonsbymenuid、getallbuttons、addbutton、updatebutton、deletebutton按钮权限维护

Studio 与 Watchdog 接口

Studio 认证

方法路径说明
GET/api/auth/GetLoginPasswordPublicKey获取用于加密登录密码的临时公钥,有效期两分钟,只能使用一次。
POST/api/auth/Login使用 name、passwordKeyId、密码 Base64 密文 password 登录。
POST/api/auth/ChangePassword使用 Studio JWT Bearer 修改当前密码,并返回重新签发的 JWT。

Studio 首次安装直接使用 admin / 111111 登录,账号配置缺失时自动创建默认账号。登录成功后返回七天有效的 JWT Bearer,可从用户菜单修改密码。

Watchdog 认证

方法路径说明
GET/api/watchdog/login/password-public-key获取用于加密密码的临时公钥,有效期两分钟,只能使用一次。
POST/api/watchdog/login使用 username、passwordKeyId、密码 Base64 密文 password 登录。
POST/api/watchdog/logout撤销当前 Bearer 会话。

Watchdog 默认使用 admin / 111111 直接登录,已有配置中的有效账号密码优先。登录成功后返回 accessToken、username 和 expiresAt。Token 是八小时有效的随机不透明值,服务端只在内存中保存 SHA-256 摘要;登出或 Watchdog 重启后失效。

应用主要路径用途
Studio 认证/api/auth/GetLoginPasswordPublicKey、Login、ChangePasswordStudio 登录密码加密、登录和修改密码
Studio 语言服务/api/completion/assemblies、complete、codecheck、signaturehelp、hover引用检测、补全、诊断、参数提示及注释;操作说明见代码编辑器
Studio 工程/api/project/list、create、update、import工程列表、创建、编辑、导入
Studio 运行时/api/runtime/current-project、start、stop、gateway-version、app-version本机运行时状态和版本
Studio 看门狗/api/watchdog/configs、config/save、upload、download看门狗连接、上传、下载
Studio 隧道/api/tunnel/status、listeners、config、start、stop隧道代理状态和配置
Watchdog 认证/api/watchdog/login/password-public-key、login、logoutWatchdog 密码加密、登录和退出登录
Watchdog 状态/api/watchdog/status、projects、logs、backups仪表盘、项目、日志、备份
Watchdog 项目/api/watchdog/project/upload、project/download/{name}、apply/{name}、project/{name}项目上传、下载、应用、删除
Watchdog 进程/api/watchdog/restart、stop重启或停止网关运行时
Watchdog 备份/api/watchdog/backup/create、backup/restore/{name}、backup/{name}创建、恢复、删除备份
Watchdog 隧道/api/watchdog/tunnel/status、activate/{name}、deactivate/{name}、activate-all、deactivate-all隧道客户端状态和启停
Watchdog 设置/api/watchdog/options、change-passwordWatchdog 配置和密码修改

调用排障

观察结果判断与下一步恢复检查
HTTP 401 或 Token 失效确认令牌属于当前组件和当前服务,重新登录;Watchdog 重启会使原会话失效用新令牌调用同一受保护的只读接口
HTTP 403 或无权限核对角色的 API 权限;Studio / Watchdog 还需检查远程管理及部署开关用同一账号重试原操作,不以管理员登录成功代替授权验证
HTTP 400、参数校验失败读取完整返回消息,对照当前实例 OpenAPI 的方法、字段类型和必填项;文件接口使用约定表单用一个最小合法请求确认,再增加筛选或批量内容
HTTP 200 但得到 HTML 或浏览器报 CORS检查反向代理是否把 API 转到前端回退页;按跨域检查查看响应头及 OPTIONS在实际调用页面确认收到预期 JSON
写入请求失败或无现场变化分别核对源变量权限、写入表达式、插件返回和现场设备状态;普通方法调用还需对应开关对允许测试的点位回读实际设备值,并核对 RPC 日志

保留请求时间、接口路径、状态码及去敏后的错误消息;不要记录登录密文、令牌、账号密码或完整生产载荷。导入和批量修改失败后,先查询实际已写入范围,再决定是否重试。

使用注意

  • 接口路径请按表格中的大小写和路径调用。
  • 导入导出、上传、下载接口可能返回文件或接收表单文件,请按接口文档中的请求格式调用。
  • 管理类接口受菜单、按钮、API 权限共同限制;角色授权不足时,即使 Token 有效也可能返回无权限。