POST /flows

设置活动流程配置。

需要权限:flows.write

请求头

请求头
授权 Bearer [token] - 如果启用了认证
内容类型 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 属性是字符串,但不应对其格式做其他假设。