POST /flows

设置活动流配置。

需要权限: flows.write

标头

Header Value
Authorization Bearer [token] - 如果启用了身份验证
Content-type application/json
Node-RED-API-Version (自 0.15.0 起) 使用的API版本。如果未设置,默认为 v1
Node-RED-Deployment-Type fullnodesflowsreload

Node-RED-Deployment-Type 标头用于定义执行的部署类型。

  • full - 所有现有节点在新配置启动之前被停止。 如果未提供该标头,则这是默认行为。
  • nodes - 仅停止已修改的节点,然后应用新配置。
  • flows - 仅停止包含已修改节点的流,然后应用新配置。
  • reload - 从存储重新加载流并重新启动所有节点(自 Node-RED 0.12.2 起)

参数

请求体的格式将取决于使用的 Node-RED API 版本:

v1 - 节点对象数组

[
  {
    "type": "tab",
    "id": "396c2376.c693dc",
    "label": "Sheet 1"
  }
]

v2 - 流响应对象

如果提供,rev 属性应反映由 GET /flows 返回的流的修订版。

{
    "rev": "abc-123",
    "flows": [
      {
        "type": "tab",
        "id": "396c2376.c693dc",
        "label": "Sheet 1"
      }
    ]
}

设置节点凭据

提供凭据有两种方法。flows 数组中的单个节点对象可以包含一个 credentials 属性,包含该节点的凭据。

或者,顶层对象可以包含一个具有单个节点凭据或完整加密集的 credentials 属性。

内联节点凭据:

{
    "rev": "abc-123",
    "flows": [
      {
        "type": "tab",
        "id": "396c2376.c693dc",
        "label": "Sheet 1",
        "credentials": {
            "user": "my-username",
            "pass": "my-password"
        }
      }
    ]
}

单独的节点凭据:

{
    "rev": "abc-123",
    "flows": [
      {
        "type": "tab",
        "id": "396c2376.c693dc",
        "label": "Sheet 1"
      }
    ],
    "credentials": {
        "396c2376.c693dc": {
            "user": "my-username",
            "pass": "my-password"
        }
    }
}

加密节点凭据:

{
    "rev": "abc-123",
    "flows": [
      {
        "type": "tab",
        "id": "396c2376.c693dc",
        "label": "Sheet 1"
      }
    ],
    "credentials": {
        "$": "beea417990012379ca6d4116bd1fda5bOWbwy7UnQvccxAEH1V1pSEETTfSNerYGvP4Aai6RT/DNpnjCCP/fdzildzlJhFjYcRKdO1Q="
    }
}

响应

状态码 原因 响应
200 v2 成功 活动流的新 rev。见下文。
204 v1 成功
400 无效的API版本 一份 错误响应
401 未授权
409 版本不匹配 一份 错误响应。见下文。

如果使用的是API的 v1,则成功的请求不包含响应体。

如果使用的是API的 v2,请求应包括 rev 属性,设置为请求者已知的最新 rev 值。如果该值与运行时活动流的 rev 值匹配,则请求将成功。

如果不匹配,则表示运行时正在使用更新版流,请求将被拒绝,并返回 409 状态码。这允许请求者解决任何差异并重新提交请求。

如果请求者希望强制部署,则应从请求中省略 rev 属性。

在成功的请求中,响应提供新的 rev 值:

{
    "rev": "def-456",
}

注意: rev 属性是一个字符串,但不应对其格式做其他假设。