从多个REST端点获取JSON数据的正确方法

时间:2019-04-01 19:37:35

标签: java json rest okhttp3 endpoint

因此,我正在尝试确定从现有Web API获取/解析JSON数据的最佳方法。

我的意思是给定端点,例如:

https://example.com/api/projects(不是真实的)

返回的JSON结构如下:

{
    "count": 4424,
    "results": [
        {"id": 2718, "name": "fox", "location": "Omaha"}, 
        {"id": 2719, "name": "bear", "location": "Miami"}
    ]
}

然后我需要获取这些id值的列表,以便从随后的使用项目ID的终结点获取JSON:

https://example.com/api/projects/ [id] /资源(不是真实的)

并返回结构如下的JSON:

{
    "quota_cpus": 2,
    "active_cpus": 1,
    "quota_memory": 16384,
    "active_memory": 0
}

我当时想的是,我将使用OKHTTP3进行REST调用以检索项目ID,并将其存储在名为Project的Java对象中。

然后,我将遍历该列表,并进行另一个REST调用,以检索每个单独项目的资源列表,并将其存储在一个名为ProjectResources的新对象中。

我的问题是:

  • 这似乎是正确的做法吗?
  • 您会提出哪些更好的选择?
  • 我应该进行这些同步或异步调用吗?

1 个答案:

答案 0 :(得分:1)

这是您的查询的答案,

这似乎是正确的方法吗?

  

如果您只需要从第一次通话响应中获取ID,则将其存储在   用列表代替项目

您会提出哪些更好的选择?

  

由于第二次通话取决于第一次通话返回的ID数量,   如果您进行异步调用会更好,这将提高执行效率   时间。

     

但是,如果您有权更改第二个端点,我建议   使其可以接受多个ID。

我应该进行这些同步或异步调用吗?

  

您可以使用异步调用。 (例如,使用ExecutorServvice)