管理员 HTTP API
此 API 可用于远程管理运行时。它由 Node-RED 编辑器和命令行工具使用
Authentication 认证
Node-RED 管理 API 使用 settings.js
中的 adminAuth
属性进行保护文件。security 部分描述了应如何配置该属性。
如果未设置该属性,则任何具有 Node-RED 网络访问权限的人都可以访问 Node-RED 管理 API。
Step 0 检查身份验证方案
对 /auth/login
的 HTTP GET 将返回主动身份验证方案。
1 2
| curl http://localhost:1880/auth/login
|
在当前版本的 API 中,有两种可能的结果:
无主动身份验证
所有 API 请求都可以在不提供任何进一步的身份验证信息的情况下进行。
基于凭据的身份验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| { "type": "credentials", "prompts": [ { "id": "username", "type": "text", "label": "Username" }, { "id": "password", "type": "password", "label": "Password" } ] }
|
API 由访问令牌保护。
Step 1 获取访问令牌
对 /auth/token
的 HTTP POST 用于将用户凭证交换为访问令牌。
必须提供以下参数:
client_id
- 标识客户端。目前,必须是 node-red-admin
或 node-red-editor
。
grant_type
- 必须是密码
范围
- 正在请求的权限的空格分隔列表。目前,必须为 *
或 read
。
username
- 要验证的用户名
password
- 用于身份验证的密码
1 2
| curl http://localhost:1880/auth/token --data 'client_id=node-red-admin&grant_type=password&scope=*&username=admin&password=password'
|
如果成功,响应将包含访问令牌:
1 2 3 4 5
| { "access_token": "A_SECRET_TOKEN", "expires_in":604800, "token_type": "Bearer" }
|
Step 2 使用访问令牌
然后,所有后续 API 调用都应在 Authorization
中提供此令牌 页眉。
1 2
| curl -H "Authorization: Bearer A_SECRET_TOKEN" http://localhost:1880/settings
|
撤销令牌
要在不再需要令牌时撤销令牌,应将其在 HTTP POST 中发送到 /auth/revoke
:
1 2
| curl --data 'token=A_SECRET_TOKEN' -H "Authorization: Bearer A_SECRET_TOKEN" http://localhost:1880/auth/revoke
|
Types 类型
以下类型可与 API 方法一起使用。
传统上,流配置表示为 node 对象。
从 Node-RED 0.13 开始,添加了一个 API 来允许维护流(也称为选项卡) 单独。这些 API 使用更丰富的格式进行流配置。我们会的 更新主流配置以在将来使用这种更丰富的格式, 但就目前而言,这两种格式必须共存。
节点
节点表示流中单个节点的配置。
1 2 3 4 5 6 7 8
| { "id": "123", "type": "inject", "x": 0, "y": 0, "z": "456", "wires": [ ... ] }
|
字段 |
描述 |
id |
节点的唯一 ID |
type |
节点的类型 |
x ,y |
绘制流时节点的 x/y 坐标 |
z |
节点所属的流或子流 |
wires |
节点输出所连接的连线 |
* |
由特定type |
如果节点是 config 节点,则它不能具有 ,
或属性。x y wires
子流
子流节点表示子流的配置。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| { "id": "6115be82.9eea4", "type": "subflow", "name": "Subflow 1", "info": "", "in": [{ "x": 60, "y": 40, "wires": [{ "id": "1830cc4e.e7cf34" }] }], "out": [{ "x": 320, "y": 40, "wires": [{ "id": "1830cc4e.e7cf34", "port": 0 }] }], "configs": [ ... ], "nodes": [ ... ] }
|
完整的 Flow 配置
完整流程配置表示运行时中处于活动状态的整个流程集。它表示为 Node 对象的平面数组。这是 api 使用并由编辑器导入/导出的主流格式。/flows
1 2 3 4 5 6 7 8 9 10
| [ { "id": "1234", "type": "inject" }, { "id": "5678", "type": "debug" } ]
|
从 0.15.0 开始,如果标头设置为如下格式,则 API 支持新格式。此格式提供上述节点数组,包括流的可选修订标识符:/flows Node-RED-API-Version v2
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "rev": "abc-123", "flows": [ { "id": "1234", "type": "inject" }, { "id": "5678", "type": "debug" } ] }
|
单流配置
Single Flow(单流)配置表示在编辑器中显示为选项卡的内容。
1 2 3 4 5 6 7
| { "id": "1234", "label": "Sheet1", "nodes": [ ... ], "configs": [ ... ], "subflows": [ ... ] }
|
字段 |
描述 |
id |
流的唯一 ID |
label |
流的标签 |
nodes |
流中 Node 的数组 |
configs |
流中的 Config 数组 |
subflows |
流中的子流数组 - 仅在表示流配置时使用global |
Node 模块
节点模块表示 npm 包提供的节点集的集合。
1 2 3 4 5
| { "name": "node-module-name", "version": "0.0.6", "nodes": [ ... ] }
|
字段 |
描述 |
name |
模块的名称 - 如其package.json |
version |
模块的版本 - 如其package.json |
nodes |
此模块提供的 Node Set 对象的数组 |
节点集
节点集表示一个 Node 模块。它们对应于 node-red.nodes
属性中的条目模块的 package.json
。
1 2 3 4 5 6 7 8
| { "id": "node-module-name/node-set-name", "name": "node-set-name", "types": [ ... ], "enabled": true, "module": "node-module-name", "version": "0.0.6" }
|
字段 |
描述 |
id |
集的 ID -module/name |
name |
集合的名称 - 如模块的package.json |
types |
此集合提供的节点类型的字符串数组 |
enabled |
当前是否启用此集 |
module |
提供集的模块的名称。值 of 表示节点是从复制的文件加载的,而不是从 npm 模块加载的。node-red |
Errors 错误
所有 API 方法都使用标准 HTTP 响应代码来指示成功或失败。
状态代码 |
原因 |
200 |
Success - 响应内容中包含结果 |
204 |
成功 - 没有更多内容 |
400 |
错误的请求 - 请参阅下面的响应格式 |
401 |
未授权 - 请参阅身份验证 |
404 |
未找到 - 未找到资源 |
409 |
版本不匹配 - 请参阅 POST /flows |
500 |
服务器错误 - 服务器上出现问题 |
错误响应
对于响应代码,响应的正文将是 JSON 对象 包含以下字段:400
字段 |
描述 |
code |
错误代码 |
message |
错误描述 |
1 2 3 4
| { code: "module_already_loaded", message: "Module already loaded" }
|
错误代码
代码 |
描述 |
unexpected_error |
发生意外错误 |
invalid_request |
请求包含无效参数 |
settings_unavailable |
存储系统不支持更改设置 |
module_already_loaded |
请求的模块已加载 |
type_in_use |
请求正在尝试删除/禁用当前正在使用的节点类型 |
invalid_api_version |
请求在标头中指定了无效的 api 版本Node-RED-API-Version |
Methods 方法
GET /auth/login
获取主动身份验证方案
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
请参阅示例响应正文 |
在当前版本中,有两种可能的响应:
无主动身份验证
基于凭据的身份验证
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| { "type": "credentials", "prompts": [ { "id": "username", "type": "text", "label": "Username" }, { "id": "password", "type": "password", "label": "Password" } ] }
|
prompts
字段指示在令牌交换中需要提供哪些属性。
POST /auth/token
将凭据交换为访问令牌
请求头
头 |
值 |
Authorization |
Bearer [token] |
Content-type |
application/json |
参数
请求正文必须是包含以下字段的 JSON 字符串:
字段 |
描述 |
client_id |
标识客户端。目前,必须是或。node-red-admin node-red-editor |
grant_type |
必须是password |
scope |
以空格分隔的请求权限列表。目前,必须是或。* read |
username |
要验证的用户名 |
password |
用于身份验证的密码 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
请参阅示例响应正文 |
401 |
未授权 |
None |
1 2 3 4 5
| { "access_token": "A_SECRET_TOKEN", "expires_in":604800, "token_type": "Bearer" }
|
POST /auth/revoke
撤销访问令牌
请求头
头 |
值 |
Authorization |
Bearer [token] |
Content-type |
application/json |
参数
请求正文必须是包含以下字段的 JSON 字符串:
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
None |
401 |
未授权 |
None |
GET /settings
获取运行时设置。
需要权限:settings.read
请求头
头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
请参阅示例响应正文 |
401 |
未授权 |
None |
1 2 3 4 5 6 7 8
| { "httpNodeRoot": "/", "version": "0.X.Y", "user": { "username": "admin", "permissions": "*" } }
|
响应对象包含以下字段:
字段 |
描述 |
httpNodeRoot |
HTTP 节点的根路径 |
version |
Node-RED 运行时版本 |
user |
有关已登录用户的信息。仅当启用身份验证时,此字段才存在。 |
GET /diagnostics
获取运行时诊断。请注意,仅当文件中的 value 设置为时,运行时诊断才可用。diagnostics enabled: true settings.js
需要权限:settings.read
请求头
头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
请参阅示例响应正文 |
401 |
未授权 |
None |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
| { "report": "diagnostics", "scope": "basic", "time": { "utc": "Mon, 23 Jan 2023 20:15:08 GMT", "local": "1/23/2023, 8:15:08 PM" }, "intl": { "locale": "en-US", "timeZone": "UTC" }, "nodejs": { "version": "v16.16.0", "arch": "x64", "platform": "linux", "memoryUsage": { "rss": 106336256, "heapTotal": 36225024, "heapUsed": 33527912, "external": 1905248, "arrayBuffers": 145556 } }, "os": { "containerised": true, "wsl": false, "totalmem": 32841064448, "freemem": 28394344448, "arch": "x64", "loadavg": [ 1, 1.01, 0.89 ], "platform": "linux", "release": "5.15.85-1-MANJARO", "type": "Linux", "uptime": 5554.97, "version": "#1 SMP PREEMPT Wed Dec 21 21:15:06 UTC 2022" }, "runtime": { "version": "3.0.2", "isStarted": true, "flows": { "state": "start", "started": true }, "modules": { "node-red": "3.0.2" }, "settings": { "available": true, "apiMaxLength": "UNSET", "disableEditor": false, "contextStorage": {}, "debugMaxLength": 1000, "editorTheme": { "palette": {}, "projects": { "enabled": false, "workflow": { "mode": "manual" } }, "codeEditor": { "lib": "ace", "options": { "theme": "vs" } } }, "flowFile": "flows.json", "mqttReconnectTime": 15000, "serialReconnectTime": 15000, "socketReconnectTime": "UNSET", "socketTimeout": "UNSET", "tcpMsgQueueSize": "UNSET", "inboundWebSocketTimeout": "UNSET", "runtimeState": { "enabled": false, "ui": false }, "adminAuth": "SET", "httpAdminRoot": "/", "httpAdminCors": "UNSET", "httpNodeAuth": "UNSET", "httpNodeRoot": "/", "httpNodeCors": "UNSET", "httpStatic": "UNSET", "httpStaticRoot": "UNSET", "httpStaticCors": "UNSET", "uiHost": "SET", "uiPort": "SET", "userDir": "SET", "nodesDir": "UNSET" } } }
|
响应对象包含以下字段:
字段 |
描述 |
intl |
node-red 实例的国际化 (i8n) 语言 |
nodejs |
底层架构/平台的 NodeJS 版本 |
os |
当前内存使用情况的作系统信息和统计信息 |
runtime |
当前 Node-RED 运行时信息 |
modules |
Node-RED 模块及其各自的版本 |
settings |
node-RED 实例当前设置的详细说明 |
GET /flows
获取活动流配置。
需要权限:flows.read
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
Node-RED-API-Version |
(自 0.15.0 起)正在使用的 api 版本。如果未设置,则默认为。v1 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
v1 节点对象 数组 包含流的当前修订标识符的流响应对象v2 |
400 |
API 版本无效 |
错误响应 |
401 |
未授权 |
None |
v1
- 节点对象数组
1 2 3 4 5 6 7
| [ { "type": "tab", "id": "396c2376.c693dc", "label": "Sheet 1" } ]
|
v2
- 流响应对象
1 2 3 4 5 6 7 8 9 10
| { "rev": "abc-123", "flows": [ { "type": "tab", "id": "396c2376.c693dc", "label": "Sheet 1" } ] }
|
GET /flows/state
获取流的当前运行时状态。请注意,仅当文件中的 value 设置为时,流的运行时状态才可用。runtimeState enabled: true settings.js
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
请参阅示例响应正文 |
401 |
未授权 |
None |
响应对象包含以下字段:
字段 |
描述 |
state |
流的运行时状态。可以是 或start``stop |
POST /flows
设置活动流配置。
需要权限:flows.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
Content-type |
application/json |
Node-RED-API-Version |
(自 0.15.0 起)正在使用的 api 版本。如果未设置,则默认为。v1 |
Node-RED-Deployment-Type |
full 或 nodes flows reload |
请求头用于定义部署类型执行:Node-RED-Deployment-Type
full
- 在启动新配置之前,所有现有节点都会停止。如果未提供 header,则这是默认行为。
nodes
- 在应用新配置之前,仅停止已修改的节点。
flows
- 在应用新配置之前,仅停止包含已修改节点的流。
reload
- 从存储重新加载流,并重新启动所有节点(自 Node-RED 0.12.2 起)
参数
请求正文的格式将取决于所使用的 Node-RED API 版本:
v1
- 节点对象数组
1 2 3 4 5 6 7
| [ { "type": "tab", "id": "396c2376.c693dc", "label": "Sheet 1" } ]
|
v2
- 流响应对象
该属性(如果提供)应反映返回的流的修订。rev GET /flows
1 2 3 4 5 6 7 8 9 10
| { "rev": "abc-123", "flows": [ { "type": "tab", "id": "396c2376.c693dc", "label": "Sheet 1" } ] }
|
设置节点凭证
有两种方法可以为此请求提供凭证。单个节点数组中的对象可以包含一个包含该节点的凭证。flows credentials
或者,顶级对象可以包含具有单个节点的凭证或完整的加密集。credentials
内联节点凭证 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| { "rev": "abc-123", "flows": [ { "type": "tab", "id": "396c2376.c693dc", "label": "Sheet 1", "credentials": { "user": "my-username", "pass": "my-password" } } ] }
|
单独的节点凭证 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "rev": "abc-123", "flows": [ { "type": "tab", "id": "396c2376.c693dc", "label": "Sheet 1" } ], "credentials": { "396c2376.c693dc": { "user": "my-username", "pass": "my-password" } } }
|
加密的节点凭证:
1 2 3 4 5 6 7 8 9 10 11 12 13
| { "rev": "abc-123", "flows": [ { "type": "tab", "id": "396c2376.c693dc", "label": "Sheet 1" } ], "credentials": { "$": "beea417990012379ca6d4116bd1fda5bOWbwy7UnQvccxAEH1V1pSEETTfSNerYGvP4Aai6RT/DNpnjCCP/fdzildzlJhFjYcRKdO1Q=" } }
|
响应
状态代码 |
原因 |
响应 |
200 |
v2 成功 |
活动流的新增功能。见下文。rev |
204 |
v1 成功 |
None |
400 |
API 版本无效 |
错误响应 |
401 |
未授权 |
None |
409 |
版本不匹配 |
Error 响应。见下文。 |
如果正在使用 API,则成功的请求不包含响应正文。v1
如果正在使用 API,则请求应包含设置为请求者已知最新值的属性。如果此值与运行时中活动流的值匹配,则请求将成功。v2 rev rev rev
如果不匹配,则表示运行时正在使用较新版本的 Flows ,请求将被拒绝并显示状态代码。这允许请求者解决所有差异并重新提交请求. 409
如果请求者希望强制部署,则应在请求中省略该属性. rev
请求成功时,响应会提供新值:rev
注意:该属性是一个字符串,但不应对其格式进行其他假设. rev
GET /flows/state
获取流的当前运行时状态。请注意,仅当文件中的 value 设置为时,流的运行时状态才可用。runtimeState enabled: true settings.js
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
请参阅示例响应正文 |
401 |
未授权 |
None |
响应对象包含以下字段:
字段 |
描述 |
state |
流的运行时状态。可以是或 start stop |
POST /flow
将流添加到活动配置。流在编辑器中表示为选项卡。
需要权限:flows.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
Content-type |
application/json |
参数
请求正文必须是单个流配置对象。
1 2 3 4 5 6
| { "id": "91ad451.f6e52b8", "label": "Sheet 1", "nodes": [ ], "configs": [ ] }
|
配置对象必须至少包含 property. nodes
运行时将为流分配一个新 ID。如果提供的流配置对象包含一个字段,则该字段将被替换,并且所有节点的属性都会更新以匹配. id z
流中的所有节点都必须具有唯一的属性。如果任何 s 已在使用中,则请求将被拒绝. id id
响应
状态代码 |
原因 |
响应 |
204 |
成功 |
None |
400 |
错误的请求 |
错误响应 |
401 |
未授权 |
None |
返回流的. id
1
| {"id":"5a04dce3.a5fb24"}
|
GET /flow/:id
获取单个流配置。流在编辑器中表示为选项卡。
需要权限:flows.read
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
参数
如果设置为,则全局配置节点和子流定义返回。id global
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
流对象。请参阅示例响应正文 |
401 |
未授权 |
None |
404 |
未找到 |
None |
1 2 3 4 5 6 7
| { "id": "91ad451.f6e52b8", "label": "Sheet 1", "nodes": [ ], "configs": [ ], "subflows": [ ] }
|
PUT /flow/id
更新活动配置中的流程。流在编辑器中表示为选项卡。
在启动新流配置之前,现有流中的所有节点都将停止。
需要权限:flows.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
Content-type |
application/json |
参数
路径组件 |
描述 |
id |
要更新的流的 ID,或global |
请求正文必须是单个流配置对象。
对于正常流:
1 2 3 4 5 6
| { "id": "91ad451.f6e52b8", "label": "Sheet 1", "nodes": [ ], "configs": [ ] }
|
对于全局流:
1 2 3 4 5
| { "id": "global", "configs": [ ], "subflows": [ ] }
|
响应
状态代码 |
原因 |
响应 |
204 |
成功 |
None |
400 |
错误的请求 |
错误响应 |
401 |
未授权 |
None |
返回流的. id
1
| {"id":"5a04dce3.a5fb24"}
|
DELETE /flow/:id
删除单个流程配置
需要权限:flows.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
参数
响应
状态代码 |
原因 |
响应 |
204 |
成功 |
None |
400 |
错误的请求 |
Error 响应。 |
401 |
未授权 |
None |
404 |
未找到 |
None |
GET /nodes
获取已安装节点的列表
需要权限:nodes.read
请求头
请求头 |
值 |
Accept |
application/json 或 - 参见 Response 部分text/html |
Authorization |
Bearer [token] - 如果启用了身份验证 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
取决于标头。有关详细信息,请参阅下文。Accept |
401 |
未授权 |
None |
Accept: application/json
返回 Node Set 对象的数组。例如:
1 2 3 4 5 6 7 8 9 10 11 12
| [ { "id": "node-red/sentiment", "name": "sentiment", "types": [ "sentiment" ], "enabled": true, "module": "node-red" "version": "0.10.6" } ]
|
Accept: text/html
这将所有已安装节点的 HTML 内容作为单个响应返回。
POST /nodes
安装新的 node 模块
需要权限:nodes.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
Content-type |
application/json - 如果从 npm 存储库安装 |
Content-type |
multipart/form-data - 如果安装 tgz 软件包 |
参数
从 npm 存储库安装包时,请求正文必须是包含以下字段的 JSON 字符串:
字段 |
描述 |
module |
要从 npm 存储库安装的节点模块的名称,或包含 node 模块的目录的完整路径。注意:此 api 不支持 npm 使用的所有模块说明符,例如 files 或 version 限定符。.tgz |
1 2 3
| { "module": "node-red-node-suncalc" }
|
如果安装 tgz 包,请求正文必须为multipart/form-data
以下示例将安装 . curl node-red-contrib-foo
1
| curl -X POST http://localhost:1880/nodes -H "Content-Type: multipart/form-data" -F "tarball=@node-red-contrib-foo-1.0.3.tgz;type=application/x-compressed-tar;filename=node-red-contrib-foo-1.0.3.tgz"
|
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
Node Module 对象。请参阅示例响应正文 |
400 |
错误的请求 |
错误响应 |
401 |
未授权 |
None |
404 |
未找到 |
None |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "name": "node-red-node-suncalc", "version": "0.0.6", "nodes": [ { "id": "node-red-node-suncalc/suncalc", "name": "suncalc", "types": [ "sunrise" ], "enabled": true, "loaded": true, "module": "node-red-node-suncalc" } ] }
|
GET /nodes/:module
获取 node 模块的信息。
需要权限:nodes.read
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
参数
响应
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "name": "node-red-node-suncalc", "version": "0.0.6", "nodes": [ { "id": "node-red-node-suncalc/suncalc", "name": "suncalc", "types": [ "sunrise" ], "enabled": true, "module": "node-red-node-suncalc", "version": "0.0.6" } ] }
|
PUT /nodes/:module
启用/禁用节点模块
需要权限:nodes.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
Content-type |
application/json |
参数
请求正文必须是包含以下字段的 JSON 字符串:
字段 |
描述 |
enabled |
true 或 - 是启用还是禁用模块false |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
Node Module 对象。请参阅示例响应正文 |
400 |
错误的请求 |
错误响应 |
401 |
未授权 |
None |
404 |
未找到 |
None |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| { "name": "node-red-node-suncalc", "version": "0.0.6", "nodes": [ { "id": "node-red-node-suncalc/suncalc", "name": "suncalc", "types": [ "sunrise" ], "enabled": true, "loaded": true, "module": "node-red-node-suncalc" } ] }
|
DELETE /nodes/:module
移除节点模块
需要权限:nodes.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
参数
响应
状态代码 |
原因 |
响应 |
204 |
成功 |
None |
400 |
错误的请求 |
Error 响应。 |
401 |
未授权 |
None |
404 |
未找到 |
None |
GET /nodes/:module/:set
获取节点模块集信息
需要权限:nodes.read
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
参数
路径组件 |
描述 |
module |
模块的名称 |
set |
集的名称 |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
Node Set 对象。请参阅示例响应正文 |
401 |
未授权 |
None |
404 |
未找到 |
None |
1 2 3 4 5 6 7 8 9 10
| { "id": "node-red-node-suncalc/suncalc", "name": "suncalc", "types": [ "sunrise" ], "enabled": true, "module": "node-red-node-suncalc", "version": "0.0.6" }
|
PUT /nodes/: module/:set
启用/禁用节点集
需要权限:nodes.write
请求头
请求头 |
值 |
Authorization |
Bearer [token] - 如果启用了身份验证 |
Content-type |
application/json |
参数
路径组件 |
描述 |
module |
模块的名称 |
set |
集的名称 |
请求正文必须是包含以下字段的 JSON 字符串:
字段 |
描述 |
enabled |
true 或 - 是启用还是禁用模块false |
响应
状态代码 |
原因 |
响应 |
200 |
成功 |
Node Set 对象。请参阅示例响应正文 |
400 |
错误的请求 |
错误响应 |
401 |
未授权 |
None |
404 |
未找到 |
None |
1 2 3 4 5 6 7 8 9
| { "id": "node-red-node-suncalc/suncalc", "name": "suncalc", "types": [ "sunrise" ], "enabled": false, "module": "node-red-node-suncalc" }
|