首页 > 解决方案 > 递归 RESTAPI 查询

问题描述

对于某些背景,我有许多运行名为 Redfish 的 REST API 的企业系统管理产品。我可以通过以下方式访问此类设备上的根文件夹:

https://ip.of.device/redfish/v1

如果我从 GET 请求浏览原始 JSON,则输出包括如下所示的 JSON 数据。由于它有多长,我正在截断它,所以这里可能存在一些 JSON 语法错误。

{
    Description: "Data",
    AccountService: {
    @odata.id: "/redfish/v1/AccountService"
    },
    CertificateService: {
    @odata.id: "/redfish/v1/CertificateService"
    }
}

也许在我的搜索中我使用了错误的术语,但每个@odata.id 项目基本上都是一个我可以导航到的“文件夹”。每个文件夹都有额外的数据值,但还有更多的文件夹。我可以通过 javascript 捕获我知道的文件夹的内容并足够简单地解析 JSON,但是这里有数百个文件夹,有些多层很深,从一个设备到另一个设备,有时文件夹是不同的。

由于这些数据的大小和动态特性,有没有一种方法可以从 API 本身递归查询,或者使用 Javascript 递归“抓取”API 的 @odata.id '文件夹'结构?我很想在 foreach 循环中编写一堆嵌套查询,但肯定有更好的方法来实现这一点。

我的最终目标是从 nodejs 执行此操作,解析数据,然后以 Web 表单形式呈现数据,以供用户选择要保留的字段,我们将这些字段与路径一起存储在 mongodb 数据库中以便更快地查找用于以后更有针对性的 api 查询的原始数据。

在此先感谢您的任何建议。

标签: javascriptrestodata

解决方案


推荐阅读