java - 如何在当前的Rest API中实现spring Hateoas?

标签 java spring rest spring-mvc spring-hateoas

我已经按照标准成功实现了 RestFul API,但尚未将所有功能纳入我的 API 中。例如,我的 API 目前遵守 URI 标准和按照解释的标准正确使用动词。我想要实现的是根据本文实现的 3 级 API

http://zeroturnaround.com/rebellabs/beyond-rest-how-to-build-a-hateoas-api-in-java-with-spring-mvc-jersey-jax-rs-and-vraptor/

这意味着我正在尝试在我的 Restful API 中实现 HATEOAS。我已经开始阅读文章来了解它,但对于得到我想要的东西却有一个模糊的愿景。我需要的是制定一个基本计划,确定哪些步骤对 HATEOAS 很重要?

好吧,我有一个 Rest API,它将请求邮政编码发送到服务

http://localhost:8080/api/india/{postcode}

这里的邮政编码是路径参数。

当被调用时,它会响应该特定邮政编码的所有可能的地址匹配。 现在,我制作的 API 能够以 xml 和 json 格式给出正确的响应,我没有任何提示。现在,下一步我需要实现 HATEOAS 功能 在此 API 中。我已经对 HATEOAS 有基本的了解,但我的疑问是它如何适用于我的 API。

最佳答案

HATEOAS 背后的想法是,除了初始 URL 之外,您不需要预先了解 API。

在您的情况下,这可能是网址:

http://localhost:8080/api/

该 URL 上的资源可能包含各个国家/地区的链接列表,导致

http://localhost:8080/api/india
http://localhost:8080/api/china
http://localhost:8080/api/australia

等等。在这些资源中可能有进一步的链接或表格或两者都通向

http://localhost:8080/api/india/{postcode}

当然,您可能在首页上有一个表单,直接指向最终 URL 以及更多变体。

这种设计的结果是,您的应用程序可以随时更改 URL,而不会破坏任何内容。

一个重要的实现细节是用于传达链接目的的“rel”。这个目的的解释实际上必须进入客户端的实现,这是一个无赖,但我想,直到所有 http 客户端都实现了真正强大的人工智能,这是我们唯一的选择。

关于java - 如何在当前的Rest API中实现spring Hateoas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28878665/

相关文章:

java - RestTemplate.postForObject - 错误 : org. springframework.web.client.HttpClientErrorException:400 错误请求

java - 设置唯一的 bean 名称 javax.management.InstanceAlreadyExistsException

java - Spring JAX-RS 客户端 - 获取响应状态

java - 如何使用 OAuth 1.0 在 java 中获取访问 token ?

java - 在 bootstrap.properties 文件中配置 Spring Cloud Config 的机制是什么?

Java HTTP 请求卡住

Java Spring rest java.lang.ClassCastException : java. util.LinkedHashMap 无法转换为 Cuestionario

java - 如何在JSTL中调​​用java方法

rest - 在一个 http rest 请求中发送两个二进制消息

java - 是否可以提取 JDK 系统模块并将其用作独立的应用程序模块/JAR 文件?