gpt4 book ai didi

java - 如何在 Java 中使用 Restful Web 服务(Restful API)

转载 作者:行者123 更新时间:2023-11-30 10:48:15 26 4
gpt4 key购买 nike

我只想知道流程的高级步骤。这是我对这个过程的看法:

假设:API返回JSON格式

  1. 检查 API 文档以查看返回的 JSON 的结构
  2. 创建相应的 Java 类(例如:Employee)
  3. 对端点进行 Http 调用以获取 JSON 响应
  4. 使用一些 JSON 库(例如 GSON、Jackson)将 JSON 字符串解码为 Employee 对象。
  5. 操作Employee对象

但是,如果 API 返回的 JSON 发生变化怎么办?时不时地检查 JSON 字符串以调整相应的 Java 类是一项非常繁琐的工作。

任何人都可以帮助我理解这一点。谢谢

最佳答案

您描述了如何使用 json over http API,这很好,因为那里的大多数 API 都是这样。但是,如果您有兴趣使用 Restful HTTP 资源,一种方法是:

  1. 又名检查 API 文档。 media-types 您的客户端需要支持以便与其资源进行通信。一些 RESTafarians 认为所有的 media-types 都应该标准化,这样所有的客户端都可能支持它们,但我认为这有点过头了。

    注意链接表示和处理逻辑。 media-types 不仅描述了数据的格式,还描述了如何处理它们。如果它是图像,如何显示它,如何运行可能是消息一部分的代码,如何在屏幕上布局,如何使用表单等嵌入式控件。

  2. 创建相应的 Java 类。如果资源“仅”描述数据(它们通常在 API 上下文中这样做),那么简单的 Java 类就可以了,否则可能需要更多。例如:表示是否可以包含在客户端上运行的 JavaScript?您需要嵌入一个 JavaScript 引擎,并为此准备您的类。

  3. 调用已添加书签的 URI(如果有)。不应有您调用的类似 SOAP 的硬编码“端点”。您从书签开始,逐步达到客户需要处于的状态

    通常您的第一个调用会转到“开始”资源。这是您最初拥有的唯一书签。您在 Accept header 中指定为此资源支持的media-types

  4. 然后检查返回的 Content-Type 是否与您接受的 media-types 之一匹配(请记住,服务器可以随意忽略您的偏好),然后根据其规则处理返回的表示。

    例如,您想要获取您还没有书签的客户 123456 的所有帐户。您可能首先GET 用于帐户管理的启动资源。那里的处理逻辑可能会描述一个指向帐户列表的链接。你点击链接。那里的代表可能会给你一个“表格”,你必须在其中填写客户编号和 POST。最后,您将获得帐户列表的表示。此时您可以将页面添加为书签,这样您下次就不必遍历整个链条。

  5. 过程表示。这可能涉及显示、运行或只是将数据移交给其他类。

很抱歉发了这么长的帖子,一天的工作很慢:)为了完整起见,客户需要了解的其他一些要点:缓存、处理书签(对 3xx 代码使用react)、遵循表示中的链接。

版本控制是您提到的另一个主题。这本身就是一个完整的讨论,但简而言之:有些人(包括我自己)提倡对 media-type 进行版本控制。非向后兼容的更改只是更改媒体类型的名称(例如从 application/vnd.company.customer-v1+jsonapplication/vnd.company.customer-v2+json),然后所有内容(例如书签)由于内容协商而继续工作。

关于java - 如何在 Java 中使用 Restful Web 服务(Restful API),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35880146/

26 4 0
文章推荐: