POST后通过REST返回内容可以吗?

2024-03-10

我正在使用 RESTlet 并且创建了一个资源。我通过重写处理 POSTacceptRepresentation method.

客户端应该向我发送一些数据,然后我将其存储到数据库,将响应设置为 201 (SUCCESS_CREATED),我需要向客户端返回一些数据,但返回类型为acceptRepresentation is void.

就我而言,我需要返回一些标识符,以便客户端可以访问该资源。

例如,如果我有一个带有 URL 的资源/resource并且客户端发送 POST 请求我在数据库中添加一个新行,其地址应该是/resource/{id}。我需要发送{id}.

难道我做错了什么? REST 原则是否允许在 POST 后返回某些内容?如果是,我该怎么做,如果不是,该如何处理这种情况?


REST只是说你应该遵守统一的接口。换句话说,它说你应该按照 POST 应该做的事情HTTP规范 http://www.ietf.org/rfc/rfc2616.txt。这是该规范中相关的引用,

如果已经创建了资源 源服务器,响应应该 为 201(已创建)并包含一个实体 它描述了状态 请求并引用新的 资源和 Location 标头 (参见第 14.30 节)。

从这里可以看出,您有两个位置可以向客户端指示新创建的资源所在的位置。 Location 标头应该有一个指向新资源的 URL,您也可以返回一个包含详细信息的实体。

我不确定重写 AcceptRepresentation() 和重写 post() 之间有什么区别,但是this https://stackoverflow.com/questions/1352202/restlet-implementing-post-with-json-receive-and-response示例显示如何从 POST 返回响应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

POST后通过REST返回内容可以吗? 的相关文章

随机推荐