我想向我的REST客户端提供一种机制,用于定义响应相关实体是否必须作为对象解析或是否是惰性超链接。
这是一个普通的json输出:
{
"userName" : "jhon",i
...
"lastPurchasedBooks" : [ { "ISBN":"12345", "Title":"Abc", ...}, ...]
}
这是一个懒惰的选项:
{
"userName" : "jhon",
...
"lastPurchasedBooks" : [ "http://xxx/books/12345", ...]
}
我正在考虑将解决方案定义为内容协商(不同的接受标头值,特定网址等)
有一个“标准”来定义它吗?
答案 0 :(得分:1)
这取决于您对自定义媒体类型的定义;这就是如何将数据的语义传达给请求者。
如果您的自定义媒体类型(比如application/json+booklist
)被定义为包含图书实体列表,那么我想它可能没问题,
然而,我倾向于选择后者,因为这是“典型的”REST方式(即,您已经确定为“懒惰”的方式)。因此,在这种情况下,您将拥有一个名为application/json+book
的自定义媒体类型,它定义了Book
实体的JSON响应。相应地,您的自定义媒体类型application/json+booklist
将被修改为包含指向Book
个实体的链接列表,而不是包含实际Book
个实体的列表。
答案 1 :(得分:0)