使用 spring-hateoas 使用基于 HAL 的 REST 服务

2024-02-28

我正在尝试使用 RestTemplate 类使用基于 HAL 的 REST 服务。 响应正文如下所示:

{
  "_embedded": {
    "school:teachers": [
      {
        "name": "Adams",
        "state": "CA",
        "_links": {
          "self": {
            "href": "http://localhost:8080/api/teachers/1"
          }
        }
      },
      {
        "name": "Barnes",
        "state": "FL",
        "_links": {
          "self": {
            "href": "http://localhost:8080/api/teachers/2"
          }
        }
      },
      {
        "name": "Armstrong",
        "state": "GA",
        "_links": {
          "self": {
            "href": "http://localhost:8080/api/teachers/3"
          }
        }
      }
    ]
  },
  "_links": {
    "curies": [
      {
        "href": "http://localhost:8080/docs/html5/{rel}.html",
        "name": "school",
        "templated": true
      }
    ]
  }
}

The Teacher类看起来像这样:

public class Teacher {
    private String name;
    private String state;

    // getters and setters...
}

GET 方法的 REST 服务的返回类型为ResponseEntity<Resources<Resource<Component>>>。因此,我在客户端代码中的请求如下所示:

...
RestTemplate restTemplate = new RestTemplate();

Map<String, Object> dummy = new HashMap<>();
HttpEntity<String> httpEntity = getHttpEntity(); 

ResponseEntity<Resources<Resource<Teacher>>> response = restTemplate.exchange(url,
                HttpMethod.GET,
                httpEntity,
                new ParameterizedTypeReference<Resources<Resource<Teacher>>>() {});

Resources<Resource<Teacher>> resources = response.getBody();
...

当我使用响应类型发出请求时ParameterizedTypeReference响应内容为空。当我这样做时String我检索内容列表。

我应该如何执行请求以使用响应类型检索它ParameterizedTypeReference直接在POJO中映射它?


当然,你应该选择 Traverson

Traverson client = new Traverson(new URI("http://localhost:8080/api/"), 
         MediaTypes.HAL_JSON);
    Resources<Resource<Teacher>> teachers = client
        .follow("school:teachers")
        .toObject(new ResourcesType<Resource<Teacher>>(){});

https://docs.spring.io/spring-hateoas/docs/current/reference/html/#client.traverson https://docs.spring.io/spring-hateoas/docs/current/reference/html/#client.traverson

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 spring-hateoas 使用基于 HAL 的 REST 服务 的相关文章

  • JAVA_HOME环境变量和Java JDK趣事

    我想让 Java 在 1 6xxx 上运行 我更改了 JAVA HOME 变量并将其指向目录 C Program Files Java jdk1 6 0 16 我重新启动 PC 我想我可以检查我的机器指向哪个版本的 Java 但它仍然指向旧
  • 方法重载。你能过度使用它吗?

    当定义多个使用不同过滤器返回相同形状的数据的方法时 什么是更好的做法 显式方法名称或重载方法 例如 如果我有一些产品并且我正在从数据库中提取 显式方式 public List
  • java.time.LocalDate 到 java.util.Date

    转换的最佳方式是什么java time LocalDate to java util Date Date from dateToReturn atStartOfDay ZoneId systemDefault toInstant 我一直在尝
  • 声纳要求将这一领域定为最终目标

    我的程序中有以下代码 在与 Maven 集成后 我正在运行 SonarQube 5 对其进行代码质量检查 我面临这个错误 将此 public static processStatus 字段设为最终字段 将此 public static pr
  • 如何在不使用反射的情况下查看对象是否是数组?

    在Java中如何在不使用反射的情况下查看对象是否是数组 如何在不使用反射的情况下迭代所有项目 我使用 Google GWT 所以不允许我使用反射 我很想在不使用反射的情况下实现以下方法 private boolean isArray fin
  • Poi:从 xlsm 打开 Excel 文件后将其保存为 xlsx

    我正在编写一个java程序 它打开一个用户定义的excel文件 用数据填充它 然后将其保存在用户指定的路径 文件名和扩展名下 即使输入文件是 xlsm 也应该可以声明输出保存为 xlsx 但实际上是不可能的 如果我尝试使用下面的代码 打开文
  • Java J文件选择器

    我希望能够控制外观JFileChooser 我特别想保存如何JFileChooser上次显示时显示 我想保存它是否在详细信息 列表视图中使用以及列表被排序的列 例如 大小或修改日期 我知道有很多关于JFileChooser但我一直没能找到我
  • 最终类中的静态函数是否隐式最终?

    我的问题基本上与this https stackoverflow com q 8766476 3882565一 但这是否也适用于static功能 我想了解 编译器是否处理所有static函数在一个final类为final 是否添加final
  • MongoDb Spring 在嵌套对象中查找

    我正在使用 Spring Data Mongodb 和这样的文档 id ObjectId 565c5ed433a140520cdedd7f attributes 565c5ed433a140520cdedd73 333563851 list
  • 如何使 JFileChooser 仅显示具有某些特定名称 Java 的文件夹

    有什么方法可以让 JFileChooser 加载时仅显示名称为 Hello 的文件夹 这是我的代码 它显示所有文件夹以及扩展名为 py 和 java 的文件 我想添加文件夹名称限制 FileNameExtensionFilter filte
  • Spring Boot - 如何在开发过程中禁用@Cacheable?

    我正在寻找两件事 如何在开发过程中使用 Spring boot dev 配置文件禁用所有缓存 application properties 中似乎没有通用设置可以将其全部关闭 最简单的方法是什么 如何禁用特定方法的缓存 我尝试像这样使用 S
  • 如何保存/加载 BigInteger 数组

    我想保存 加载BigInteger数组传入 传出 SharedPreferences 如何做呢 例如对于以下数组 private BigInteger dataCreatedTimes new BigInteger 20 Using Gso
  • Spark java:如何处理多部分/表单数据输入?

    我在用spark http sparkjava com 开发网络应用程序 当我想上传文件时出现问题 public final class SparkTesting public static void main final String a
  • 如何在 Spring GCP 中订阅多个 Google PubSub 项目?

    我想在 Spring Boot 应用程序中订阅多个 Google Cloud PubSub 项目 阅读完相关问题后如何使用 Spring Cloud 在一个 Spring Boot 应用程序中连接 配置两个 pubsub gcp 项目 ht
  • Maven编译错误:包不存在

    我正在尝试向现有企业项目添加 Maven 支持 这是一个多模块项目 前 2 个模块编译和打包没有问题 但我面临编译错误 我尝试在多个模块中使用相同的依赖项 我的结构是 gt parent gt pom xml gt module 1 gt
  • 使用 System.out.println 显示特殊字符

    我在将带有特殊字符的文本从网络服务发送或显示到数据库时遇到问题 在我的 Eclipse 上 我已将字符编码设置为 UTF 8 但它仍然不允许我显示字符 例如 像下面的代码一样简单的打印 String test System out prin
  • 如何在java中进行多处理,以及预期的速度提升是多少?

    我是一个新手 使用 Java 对 csv 文件进行一些数据处理 为此 我使用 Java 的多线程功能 线程池 将 csv 文件批量导入到 Java 中 并对每一行执行一些操作 在我的四核处理器上 多线程大大加快了处理速度 我很想知道多处理如
  • 旧的和奇异的 JVM 上 java.io.BufferedInputStream 的默认缓冲区大小是多少?

    我一直在为一篇关于以下内容的博客文章进行一些研究java io BufferedInputStream和缓冲区 显然 多年来 默认值已从区区 512 字节增长到 8192 字节 冒昧地 Sun 的 Java 7 实现 甚至在JDK 1 1
  • 无法取消 GWT 中的重复计时器

    我正在尝试在 GWT 中安排一个重复计时器 它将每一毫秒运行一次 轮询某个事件 如果发现满意 则执行某些操作并取消计时器 我尝试这样做 final Timer t new Timer public void run if condition
  • 仅当用户开始输入时清除 JavaFX TextField 中的提示文本

    默认行为是当字段获得焦点时 字段中的提示文本将被删除 那是标记在场上的时候 是否可以配置文本字段 以便仅在用户开始输入时删除提示文本 否则 我需要在每个文本字段旁边 上方添加一个标签 以描述其中的值 我知道它有点旧 但我自己也需要它 这仍然

随机推荐

  • 使用带有索引位置的 addChild

    当我添加子节点时 如何根据它的兄弟节点选择它的位置 这是一个例子
  • 在 Python 中将 float.hex() 值转换为二进制

    我想知道如何转换返回的结果float hex 到二进制 例如 从0x1 a000000000000p 2 to 110 1 有人可以帮忙吗 谢谢 def float to binary num exponent 0 shifted num
  • 如何在 dart 中等待 Map.forEach()

    我有一个返回地图的 Future 然后 我需要使用该映射的值来等待另一个未来 然后在最后返回整个结果 问题是 dart 不能等待async Map forEach 方法 参见 https stackoverflow com a 424678
  • 将 postgres 函数与查询结合起来

    我目前正在努力处理结果集中需要的 sql 函数的输出 SELECT getAdditionalInfoAboutDate date from sampleCalendar 问题是 我通过以下方式得到结果 属性1 属性2 属性3 属性2 属性
  • 如何使用toggle()在jquery中设置cookie

    当用户单击链接时 寻找要设置的 cookie 它将打开 div 然后用户可以刷新页面并看到 div 仍然打开 HTML a class show settings href a jQuery function Toggle Settings
  • Oracle 中的标识符太长

    我正在尝试在 SQL Developer 中创建表 但收到此错误 错误 SQL ORA 00972 标识符太长 CREATE TABLE PACIENTE IdentificacionID number 5 TipoIdentificaci
  • 在 ASP.Net Core MVC 中使用 AJAX 提交表单

    我正在使用 ASP Net Core 2 1 并尝试在返回文件的 url 时上传文件 而不刷新页面 我正在尝试在 site js 中编写 JavaScript 因为 RenderPartial scripts 在页面末尾呈现所有脚本 因此在
  • Cassandra CQL 通配符搜索

    我有一个像这样的表结构 创建表文件 id 文本主键 fname 文本 mimetype 文本 isdir 布尔值 位置文本 在文件 位置 上创建索引 file location 表中内容如下 插入文件 id fname mimetype i
  • 将 Reactjs 连接到 Myqtthub

    您好 我对所有物联网事物都很陌生 我希望能够使用 mqtt 从 Arduino 发送和接收数据https myqtthub com https myqtthub com作为我们的经纪人 我使用以下代码进行连接 import React Co
  • 傅里叶变换+emgucv

    谁能告诉我这段代码有什么问题吗 基本上我正在尝试计算图像的 dft 并将其显示为屏幕上的图像 Image
  • 发布的歌曲 URL 是否是 Facebook 的嵌入式音乐播放器?

    我们希望我们的会员能够分享我们网站上的歌曲 并能够在 Facebook 帖子中收听这些歌曲 SoundCloud 能够做到这一点 如他们在他们的页面在这里 https www facebook com soundcloud 他们是通过成为白
  • MATLAB 中的字符串索引:单引号与双引号

    我有一个字符串矩阵 如下所示 readFiles 11221 09 11222 13 12821 06 13521 02 13522 13 13711 05 13921 01 14521 001 15712 003 它们用于以自动方式访问某
  • CUDA 使用解释器还是编译器?

    这是一个有点愚蠢的问题 但我想知道 CUDA 使用解释器还是编译器 我很想知道 因为我不太确定 CUDA 如何设法让源代码在具有不同计算能力的两张卡上运行 来自维基百科 http en wikipedia org wiki CUDA 程序员
  • 如何使用 serde_json 将“NaN”反序列化为“nan”?

    我的数据类型如下所示 derive Serialize Deserialize Debug serde rename all camelCase pub struct Matrix serde rename numColumns pub n
  • Firebase 函数返回“响应不是有效的 JSON 对象。”

    我正在尝试从以下地址发送电子邮件firebase我从我的函数调用vue应用程序 我的 firebase 函数如下所示 const functions require firebase functions const admin requir
  • 如何确保元组元素标签被保留?

    背景 我正在尝试使用带标签的元组元素将现有的重载函数替换为剩余参数 原始代码 这是原始重载函数的简化版本 function doSomething arg1 string arg2 number void function doSometh
  • 来自其他形式 VB.NET 的访问控制

    我正在 VS 2012 中开发一个有多种形式的 vb net 项目 比方说 我有一个带有 ListView 的 Form1 并且我从 Form1 调用 From2 我将此代码添加到 Form2 的 Load 事件中 Form1 ListVi
  • GitHub 中的多个分支

    我尝试使用以下说明在 github 上创建同一个第三方项目的第二个分支 https adrianshort org create multiple forks of a github repo https adrianshort org c
  • 在SQL Server 2005中,如何获取视图所依赖的其他数据库中的表?

    在 SQL Server 2008 中 对于给定数据库中的视图 我可以通过执行以下命令来获取该视图所依赖的其他数据库中的表 select distinct referenced database name referenced schema
  • 使用 spring-hateoas 使用基于 HAL 的 REST 服务

    我正在尝试使用 RestTemplate 类使用基于 HAL 的 REST 服务 响应正文如下所示 embedded school teachers name Adams state CA links self href http loca