POST /flows

设置当前流程配置。

需要权限: flows.write

请求头

表头 数值
Authorization Bearer [token] - if authentication is enabled
Content-type application/json
Node-RED-API-Version (Since 0.15.0) The api version being used. Defaults to v1 if not set.
Node-RED-Deployment-Type full, nodes, flows or reload

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 Success The new rev for the active flows. See below.
204 v1 Success none
400 Invalid API version An Error response
401 Not authorized none
409 Version mismatch An Error response. See below.

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

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

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

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

请求成功后,响应会提供新的rev值:

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

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