我有一个SpringServlet(来自Jersey),它正在以一种非常基本的方式公开我的JPA注释POJO。例如,我没有返回对象的实际表示,而是返回了一个像Name这样的字段来玩。
当然我想要将对象的实际表示形式作为资源返回...我被卡住的部分是如果我有一个类型为Foo的对象可以通过/ foo / {id} /访问,但它也有与对象类型Bar的关系作为Foo的一部分 - 我不想在响应中序列化Bar。我想将一个URI返回给Bar资源。
我是独自一人 - 没有框架处理那部分?特别是关于路径。感觉我将不得不创建使用@Path注释的BarResource,但是在序列化期间,还要设置从常量中读取的Bar POJO引用的URI。我无法获取类型并查找资源(以及随后的@Path注释)但这样会很方便,不是吗?
答案 0 :(得分:0)
在清除资源,表示和对象之间的区别之前,您注定要保持困惑。
资源是一个概念,或者对客户端应用程序有用的一些“东西”。这很模糊。它由URI标识并使用方法进行操作。它需要模糊/灵活,以弥补非常有限的方法。
表示是一组字节,可以通过线路传输,表示资源即时。
对象是一种实现细节,可能与资源有直接关联,也可能没有。资源中包含的信息可以由单个对象或整个对象图实现。资源的内容可以存储在文件中,SQL查询的结果,XSLT转换,几乎任何东西。
您可能或许多人不使用对象序列化来创建资源的表示。对象之间的引用可以涉及单个资源内的内容或资源之间的链接。但是,要非常小心地将域对象序列化为表示形式。这肯定会在您的客户端和服务器之间引入一定程度的耦合,让您感到后悔。