【问题标题】:How to call nested apis in Springboot如何在 Spring Boot 中调用嵌套 API
【发布时间】:2018-12-05 22:12:43
【问题描述】:

假设我们有一个 api - /student/getStudentDetails/{id},它返回一个 JSON 响应,其中包含后续的内部 rest api (/student/getAdvancedStudentDetails/{id})。

{
   id:123,
   name:Alex,
   nextapi:/student/getAdvancedStudentDetails/123
}

这里当我们从第一个 api - /student/getStudentDetails 得到响应时,我们需要处理 JSON 响应并从第一个 api 中取出第二个 api 并调用它。

有什么建议吗?

【问题讨论】:

  • 你的意思是 /student/getStudentDetails/{id} 在内部调用 /student/getAdvancedStudentDetails/{id} 吗?还是说后者依赖于前者?
  • 它应该在内部调用。我已经用可能的 json 响应编辑了文本。
  • 我明白你的意思。但是你的问题是什么?它与客户需要拨打电话的方式有关吗?还是与服务器需要处理请求的方式有关?
  • 你是如何过滤掉进阶生的?
  • 是的。你按照你在答案中所说的去做:解析 JSON,提取 URL,然后向 URL 发送请求,就像向第一个请求发送请求一样。不确定具体问题是什么。你试过什么吗?你的代码在哪里?

标签: rest spring-mvc spring-boot


【解决方案1】:

您对第一个 api“获取学生详细信息”的第一个响应仅返回学生的高级详细信息,并且响应中的字段“nextapi”具有获取有关学生的更多详细信息的 URL。

在您的第一个响应中,“nextapi”是您定义的客户字段,它只有 没有服务器主机和端口详细信息的 URL。所以 api 的消费者,将不得不解析第一个响应。创建完整的 http url 并调用下一个 api 以获取学生的更多详细信息。它不会自动发生。

例如http://localhost:8080/student/getAdvancedStudentDetails/123

{ 编号:123, 姓名:亚历克斯, nextapi:/student/getAdvancedStudentDetails/123 }

注意: 如果您的回复包含完整的 http url 以获取学生的提前详细信息,并且 api 不是安全的 api。然后,如果您查看第一个 Json,它可能会为您提供下一个 api 的链接,您可以单击该链接并查看高级详细信息。你可以试一试。

【讨论】:

    猜你喜欢
    • 2022-11-25
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 2021-07-14
    • 1970-01-01
    • 2015-05-31
    • 2020-09-12
    • 2019-12-06
    相关资源
    最近更新 更多