我正在构建REST。我有一个由bean组成的域模型,不能扩展ResourceSupport。使用将它们作为资源公开的最佳方法是哪一种?
如果这是不可能的,那么在bean生成的JSON上包含链接的最佳方法是什么?
发布于 2013-12-12 15:42:00
您可以使用Resource包装器:
MyModel model = ...
Resource<MyModel> resource = new Resource(model);
resource.add(linkTo(...发布于 2016-05-21 09:31:22
您应该将参考资料与您的域分开。
即使它们看起来很相似,领域模型和资源也有很大的不同。
域对象是您的内部表示形式。实现有约束,这取决于业务逻辑/持久性的实现方式和其他设计决策。例如,它们可能是JPA实体,也可能是不可变的。
资源是对外部世界的表现。可能是一对一的领域或完全不同。对于单个域实体,具有多个资源表示形式的情况并不少见。
但是首先,资源实现意味着要在有线上发送/接收。因此,它在被驱逐/解封方面存在限制。
因此,您的应用程序应该为域和资源拥有单独的对象。使用,使用资源汇编程序完成映射。
您可以看看这个示例应用程序:https://github.com/opencredo/spring-hateoas-sample和相关的帖子:用Spring实现HAL超媒体REST
https://stackoverflow.com/questions/20348276
复制相似问题