更新已保存对象的 Spaces API

编辑

更新已保存对象的 Spaces API编辑

[预览] 此功能处于技术预览阶段,可能会在未来版本中更改或删除。Elastic 将努力修复任何问题,但技术预览版中的功能不受官方 GA 功能的支持服务水平协议 (SLA) 的约束。 更新已保存对象的 Spaces。

更新一个或多个已保存对象,以将它们添加和/或从指定的 Spaces 中删除。

请求编辑

POST <kibana 主机>:<端口>/api/spaces/_update_objects_spaces

请求正文编辑

objects

(必需,对象数组)要更新的已保存对象。

objects 的属性
type
(必需,字符串)已保存对象的类型。
id
(必需,字符串)已保存对象的 ID。
spacesToAdd
(必需,字符串数组)应将指定对象添加到其中的 Spaces 的 ID。
spacesToRemove
(必需,字符串数组)应从中删除指定对象的 Spaces 的 ID。

响应正文编辑

objects

(对象数组)已更新的已保存对象。

objects 的属性
type
(字符串)已保存对象的类型。
id
(字符串)已保存对象的 ID。
spaces
(字符串数组)引用的已保存对象所在的 Space。
errors
(字符串)如果在更新此对象的 Spaces 时出错,则包含此项。

示例编辑

共享已保存的对象编辑

要以编程方式将已保存的对象共享到 Space,请按照以下步骤操作

  1. 使用 获取可共享引用 API 收集要共享的每个已保存对象的引用图和 Spaces 上下文

    $ curl -X POST /api/spaces/_get_shareable_references
    {
      "objects": [
        {
          "type": "index-pattern",
          "id": "90943e30-9a47-11e8-b64d-95841ca0b247"
        }
      ]
    }

    API 返回以下内容

    {
      "objects": [
        {
          "type": "index-pattern",
          "id": "90943e30-9a47-11e8-b64d-95841ca0b247",
          "spaces": ["default"],
          "inboundReferences": [],
          "spacesWithMatchingOrigins": ["default"]
        }
      ]
    }
  2. 检查每个已保存对象的 spacesWithMatchingOrigins 冲突。

    不应将对象共享到具有匹配来源的 Spaces,否则将创建 URL 冲突(导致相同的 URL 指向不同的已保存对象)。

  3. 检查每个已保存对象的 spacesWithMatchingAliases 冲突。

    如果这些与将共享这些已保存对象的 Space 匹配,则应使用 禁用旧版 URL 别名 API 为它们禁用旧版 URL 别名。

    共享到所有 Spaces (*) 时,应检查 spacesWithMatchingAliases 中的所有条目。

  4. 更新每个已保存对象及其所有引用的 Spaces

    $ curl -X POST /api/spaces/_update_objects_spaces
    {
      "objects": [
        {
          "type": "index-pattern",
          "id": "90943e30-9a47-11e8-b64d-95841ca0b247"
        }
      ],
      "spacesToAdd": ["test"],
      "spacesToRemove": []
    }

    API 返回以下内容

    {
      "objects": [
        {
          "type": "index-pattern",
          "id": "90943e30-9a47-11e8-b64d-95841ca0b247",
          "spaces": ["default", "test"]
        }
      ]
    }