获取网络资源
此节点用于访问网络地址获取网络资源,主要用于访问外部API,它支持 JSON 格式的请求内容。
通过向 获取数据 输入发送 信号 来启动请求。节点的任何输入和输出都在编辑器中通过 Inputs
和 Outputs
对象进行获取。
请求和响应脚本
网络资源获取 节点使用类似 脚本 节点,使用 Script语法 来准备请求和解析响应。
前缀为 Inputs 和 Outputs 的任何变量都将作为节点的 输入 和 输出 属性。因此,您可以在请求脚本中使用这些输入来准备 获取数据 调用,并在响应脚本中使用 Outputs
来将响应解析为输出。
请求
第一个脚本用于在将请求发送到REST端点之前准备请求。 Inputs 对象包含在节点的输入信息。Request 对象包含请求的详细信息,如有必要可进行调整。
- resource(资源) -包含请求的资源,即请求的URL。
- method(方法) -包含请求的方法,例如GET、POST等。
- headers(头部) -这是一个包含请求的所有标头的映射,在函数中添加或删除标头。
- parameters(参数) -这是一个映射,包含将附加到函数中请求、添加或删除的URL的所有参数。
- content(内容) -包含请求的内容,当发出请求时,内容将被编码为JSON。
下面的示例将为 节点 创建两个输入 ImportantHeader
和 SendMe
,您可以从你的组件中,使用 其他节点 连接到此 节点。它修改请求的标头和内容。
Request.headers["some-important-header"] = Inputs.ImportantHeader;
Request.content = {
"send-me": Inputs.SendMe,
};
当请求完成并且返回响应时,将调用相应的响应函数。
响应
在响应函数中,您可以解析响应,并使用 Outputs 对象映射设置网络资源获取节点的输出
作为 Response 函数的参数提供。在函数中,您还可以访问一个名为 Response 的对象,该对象包含以下内容。
- Response.status -响应的状态代码,例如200\301\304\500等。
- Response.content -响应的内容。
- Response.request -它包含上面用于发出请求的 请求 函数中的请求对象。
获取网络资源 节点查看 Content-Type
标头,以确定如何解析来自服务器的响应。如果类型是JSON,它将使用 JSON.parse
,对于XML,它将把它转换为JavaScript对象。
数组例子
以下示例假设响应内容是一个对象数组。 它被转换为带有 CIDE对象 的 CIDE数组,并将其发送到输出 项目。
响应内容示例:
[
{
"MyValue": 1
},
{
"MyValue": 2
}
]
Script:
Outputs.Items = Response.content.map((o) => CIDE.Object.create(o));
项目 现在是一个可以发送到 迭代器 或在另一个节点中使用的数组。
对象例子
以下示例假设响应内容是一个对象。
它将对象转换为CIDE对象,并将其发送到输出 项目。
响应内容示例:
{
"title": "my title",
"description": "my cool description"
}
脚本:
Outputs.Item = CIDE.Object.create(Response.content);
我们也可以立即调用 Response.content.description
来提取某些属性。
输入
信号 | 描述 |
---|---|
获取 | 将信号连接到此输入以触发请求。 |
取消 | 向该输入发送信号以取消正在进行的请求。 |
数据 | 描述 |
---|---|
资源 | 这是 获取数据 请求将使用的资源端点,即url。 |
方法 | 这是将用于请求的方法。支持的方法有GET、PUT、POST、PATCH和DELETE。 |
请求 | 在这里您可以编辑请求脚本。 |
响应 | 在这里您可以编辑响应脚本。 |
请求和响应的输入
您在scrips中访问的 Inputs 对象的任何变量都将自动成为节点的输入。
输出
信号 | 描述 |
---|---|
成功 | 如果请求接收到成功的状态代码(2XX),则此输出上将发出一个信号。 |
失败 | 如果发生其他类型的故障,所有其他状态代码的输出上将发出信号。 |
已取消 | 如果请求被取消,将在该输出上发出一个信号。 |
请求和响应的输出
您在scrips中访问的 输出 对象的任何变量都将自动成为节点的输出。