在POST / PUT上返回稍微不同的对象(如发送到服务器的对象)是否RESTful?
示例:
客户端向服务器发送(POST / PUT)Order
以创建订单。服务器发送一个响应对象,让我们称之为OrderResponse
,其中包含创建的Order
的属性以及一些不同的信息,如交付时间,付款条件等。这是RESTful还是我应该只返回一个OrderId并提供一个新服务,客户可以在其中检索OrderResponse
?
修改
我无法向客户提供新订单的URL,因为订单未保存在数据库中。我的应用程序通过Messaging将订单发送到第三方系统,在那里我无法读取它,但第三方系统向我发送了一些附加信息,我将其添加到OrderResponse
。
答案 0 :(得分:2)
我不认为Order
和OrderResponse
是不同的资源。它们属于同一类型。只是客户端不能也不应该知道此资源的所有细节。例如,确切的ID由服务器分配。
Location
标头返回到包含创建POST
的URI的Order
请求。Order
的表示形式和此URI完全由客户端POST
编辑。