为 RESTful 服务实现 HATEOAS17 Jan 2025 | 3 分钟阅读 HATEOASHATEOAS 是 Hypermedia as the Engine of Application State 的缩写。 术语“超媒体”是指包含指向其他形式媒体(如图像、电影和文本)的链接的内容。 它是 REST 应用程序的一个组件,使其与其他网络架构区分开来。 使用 HATEOAS,客户端与网络应用程序交互,其应用程序服务器通过超媒体动态提供信息。 Spring-HATEOASSpring-HATEOAS 是 API 的库。 在使用 Spring MVC 时,我们可以使用这些 API 来创建遵循 HATEOAS 原则的 REST 表示。 在 Spring HATEOAS 项目中,我们不需要 Servlet 上下文,也不需要将路径变量连接到基本 URI。 相反,Spring HATEOAS 提供了三种用于创建 URI 的抽象:ContrrollerLinkBuilder、Link 和 Resource Support。 我们可以使用这些抽象来创建与资源表示关联的元数据。 特点
Spring Boot 执行以下任务
假设我们请求了 localhost:8080/users/1 的 GET 请求,它会返回用户 ID 1 的详细信息。 除此之外,它还会返回一个名为 link 的字段,其中包含所有用户的链接 (localhost:8080/users),以便消费者可以检索所有用户。 这个概念称为 HATEOAS。 让我们在项目中实现 HATEOAS。 步骤 1: 打开 pom.xml 并添加 spring-boot-starter-hateoas 依赖项。 步骤 2: 打开 UserResource.java 并复制 retrieveUser() 方法。 步骤 3: 粘贴该方法并进行以下更改
记住导入 org.springframework.hateoas 包的 Resource 类。
methodOn() 是 DummyInvocationUtils.methodOn(class, Object) 的包装器,以便在使用 ControllerLinkBuilder 的静态导入时可用。
withRel(String rel) 是使用给定的 rel 创建由当前构建器实例构建的链接的方法。 参数 rel 不得为 null。
进行上述更改后,UserResource.java 文件如下所示 UserResource.java 步骤 4: 打开 REST 客户端 Postman 并发送 GET 请求。 ![]() 在这里我们可以看到它返回用户以及访问所有用户的链接。 现在单击链接并再次发送 GET 请求。 它返回所有用户的列表,如下图所示。 ![]() 下一主题RESTful 服务的国际化 |
我们请求您订阅我们的新闻通讯以获取最新更新。