据我所知,提供了将复杂对象转换为适当的HAL格式的手段。这当然是在框架本身中利用对象进行编组的。例如
举个例子:
以下是一个示例
据我所知,无论是HATEOAS还是Data REST项目都没有提供任何手段来生成此对象以便通过
在没有这种工具的情况下,如何构建一个有效的Java SDK,以利用HATEOAS原则进行服务之间的通信,并可靠地POST对象?
长话短说,我想在不手动序列化关联URI的情况下发布此对象。
Resource
和Link
对象等。举个例子:
Company 1
是我系统中现有的一个Company
。我想添加一个新的Employee
,他在Company 1
工作。以下是一个示例
Employee
对象,您可以从基于Spring Data REST的服务中接收到它。Spring HATEOAS还提供了自己构建这些对象的手段。{
"id": null,
"firstName": "bZWthNFk",
"lastName": "GtTnrqka",
"loginId": "zTk5rT",
"active": true,
"_links": {
"company": {
"href": "http://localhost/companies/1";
}
}
}
但是,似乎这种方法不适用于POST对象。据我了解,同样的对象必须以以下方式进行POST:
{
"id": null,
"firstName": "bZWthNFk",
"lastName": "GtTnrqka",
"loginId": "zTk5rT",
"active": true,
"company": "http://localhost/companies/1"
}
据我所知,无论是HATEOAS还是Data REST项目都没有提供任何手段来生成此对象以便通过
RestTemplate
或其他方式发布到有效的HAL服务。事实上,我找不到任何可靠地发布复杂对象的方法而不需要手动编排。我是否错误地假设了这一点?在没有这种工具的情况下,如何构建一个有效的Java SDK,以利用HATEOAS原则进行服务之间的通信,并可靠地POST对象?
长话短说,我想在不手动序列化关联URI的情况下发布此对象。
public class Employee {
private Integer id;
@NotNull
private Company company;
private String firstName;
private String lastName;
}
我针对这个问题创建了以下改进请求:
Employee
实例,想要通过RestTemplate
发送它,但你希望Company
字段自动序列化?这意味着你有两个使用完全相同数据结构的 Java 应用程序。是这样吗? - a better oliver