javascript - 递归 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 查询的原始数据。
在此先感谢您的任何建议。
解决方案
推荐阅读
- scala - CollectionConverters 总是返回原始源对象?
- google-chrome - 比 chrome 调试器更好地调试网站的大型 JS 文件的方法?
- google-apps-script - 我可以在此脚本中添加什么以仅以相反的顺序将行粘贴为值
- asp.net-core - SignalR 同时双向流式传输
- java - 一旦用户读取它,如何将我的字符串限制在 001 和最大字符串到 999 实施条件之间
- sql - 具有多个 JOINS 的多个子查询 Oracle
- r - 使用keyword_search检测pdf时文件名太长?
- android - OkHttp 4.x 尝试通过呼叫请求访问 url 时出错
- c++ - 为什么在使用之前没有初始化 C++ const 模板化向量?
- javascript - 动画不是离子中的构造函数