我有一个在Google App Engine上运行的RESTful网络服务,并使用JPA在GAE数据存储中存储实体。
使用POST请求创建新实体(因为服务器将生成实体ID)。
但是,我不确定要返回的最佳状态代码,因为GAE DS最终是一致的。我考虑过以下几点:
在这种情况下,最佳做法是什么?
答案 0 :(得分:2)
按键获取将始终保持一致,因此根据您的条件,200响应将是正常的,除非Google版权存在问题。你确定你观察到的问题来自获取而不是查询。按键选择KEY与GET的查询之间存在差异。
要使查询保持一致,它必须是祖先查询,或者GET是一致的,其他任何东西都可能看到不一致的数据,因为索引尚未更新。
这是假设谷歌土地没有实际问题。我们过去曾遇到过一些问题,那里的数据中心是迟到的复制,最终的整合很晚,有时甚至是几个小时。
但是你无法知道这一点,所以你要么必须假设一切都好,要么采取极其悲观的态度。
答案 1 :(得分:0)
这取决于您使用的JSON REST协议。只是总是返回一个json对象不是很RESTful。
你应该看看其中一些:
回答你问题: 我更喜欢使用一种格式,资源本身知道它的URL,所以我会使用201,但也返回整个资源。
最简单的方法是使用jsonapi和一个方便的url架构,这样你就可以通过url找到一个ressource,因为你知道id。