【发布时间】:2023-03-23 16:04:02
【问题描述】:
据我所知,提供了将复杂对象转换为正确 HAL 格式的方法。这当然被用于编组框架本身中的对象。 Resource 和 Link 对象等
为了一个用例:
Company 1 是我系统中现有的 Company。我想添加一个适用于Company 1 的新Employee
下面是一个示例 Employee 对象,您将从基于 Spring Data REST 的服务接收到该对象。 Spring HATEOAS 还提供了自己构造这些对象的方法。
{
"id": null,
"firstName": "bZWthNFk",
"lastName": "GtTnrqka",
"loginId": "zTk5rT",
"active": true,
"_links": {
"company": {
"href": "http://localhost/companies/1";
}
}
}
但是,这似乎不适用于 POST 对象。据我了解,同一个对象必须发布为:
{
"id": null,
"firstName": "bZWthNFk",
"lastName": "GtTnrqka",
"loginId": "zTk5rT",
"active": true,
"company": "http://localhost/companies/1"
}
据我所知,HATEOAS 或 Data REST 项目都没有提供任何方法来生成 this 对象,以通过RestTemplate 或其他方式发布到有效的基于 HAL 的服务其他手段。事实上,我无法找到任何无需手动编组即可轻松发布复杂对象的方法。我的假设错了吗?
应该如何构建一个有效的 Java SDK 用于服务到服务的通信,利用 HATEOAS 原则,而无需此工具来实际可靠地发布对象?
长话短说,我想发布这个对象,而不必手动序列化关联的 URI。
public class Employee {
private Integer id;
@NotNull
private Company company;
private String firstName;
private String lastName;
}
我已为此创建了以下改进请求:
【问题讨论】:
标签: java spring spring-data-rest spring-hateoas