在我们的项目中,可以通过POST或PUT请求发送书籍结构(XML,JSON,...)来添加书籍.例如,在XML中,书籍结构如下所示(简化):
<book>
<title>My Book</title>
<author>John Q.</author>
</book>
Run Code Online (Sandbox Code Playgroud)
当这本书插入我们的后端数据库时,会自动添加一些自动生成的属性,例如创建日期,提交书籍的用户ID,标识符,......
通过GET检索书籍时,这些附加属性包含在书籍定义中:
<book>
<title>My Book</title>
<author>John Q.</author>
<info>
<creation_date>2011...</creation_data>
<user_id>48</user_id>
<identifier>my_book_john_q</identifier>
</info>
</book>
Run Code Online (Sandbox Code Playgroud)
这基本上意味着新/编辑的书籍(=从客户端到服务器)的XML方案与检索到的书籍(=从服务器到客户端)不同.这让事情变得混乱.
可能性是使这些附加属性在不同的URI中可用,例如:
http://server/books/:id/ -> returns the short version
http://server/books/:id/information/ -> returns the generated properties
Run Code Online (Sandbox Code Playgroud)
这种方法的缺点是需要两个单独的请求才能获得所有数据.
你会如何解决这种不一致?
这是完全正常的.服务器使用一些附加信息来扩充表示没有问题.一个很好的例子是服务器添加到表示的链接.在进行PUT时,客户端不需要将这些链接的"副本"发送到服务器.您GET和PUT的资源表示在概念上应该相同,不一定是字节相同的字节.
| 归档时间: |
|
| 查看次数: |
693 次 |
| 最近记录: |