0

我有一个 SpringServlet(来自 Jersey),它现在以非常基本的方式公开我的 JPA 注释 POJO。例如,我没有返回对象的实际表示,而是返回了诸如 Name 之类的字段以供使用。

当然,我想将对象的实际表示作为资源返回......我被卡住的部分是,如果我有一个 Foo 类型的对象可以通过 /foo/{id}/ 访问,但它也与对象类型 Bar 作为 Foo 的一部分——我不想在响应中序列化 Bar 。我想将 URI 返回到 Bar 资源。

我是从这里开始的吗?没有框架可以处理这部分吗?特别是关于路径。感觉就像我将不得不创建带有 @Path 注释的 BarResource ,但是在序列化期间,还要设置从常量读取的 Bar POJO 引用的 URI。我无法获取类型并查找资源(以及随后的 @Path 注释),但这很方便,不是吗?

4

1 回答 1

0

在你弄清楚资源、表示和对象之间的区别之前,你注定会感到困惑。

资源是一个概念,或对客户端应用程序有用的一些“事物”。这是非常模糊的。它由 URI 标识并使用方法对其进行操作。它需要模糊/灵活以弥补非常有限的一组方法。

表示是一组可以通过线路传输的字节,将资源表示为某个瞬间。

对象是一个实现细节,它可能与资源直接相关,也可能不相关。资源中包含的信息可以由单个对象或整个对象图来实现。资源的内容可以存储在一个文件中,一个 SQL 查询的结果,一个 XSLT 转换,几乎任何东西。

您可能会或很多人不会使用对象序列化来创建资源表示。对象之间的引用可能与单个资源内的内容或资源之间的链接有关。但是,将域对象序列化为表示时要非常小心。这肯定会在您的客户端和服务器之间引入一定程度的耦合,您会后悔的。

于 2010-11-30T23:03:43.073 回答