gpt4 book ai didi

java - REST 是否可以在 POST 后返回内容?

转载 作者:IT老高 更新时间:2023-10-28 11:43:52 25 4
gpt4 key购买 nike

我正在使用 RESTlet,并且我创建了一个资源。我通过覆盖 acceptRepresentation 方法来处理 POST。

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

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

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

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

最佳答案

REST 只是说你应该遵守统一的接口(interface)。换句话说,它说您应该按照 HTTP spec 执行 POST 应该执行的操作。 .这是该规范中相关的引用,

If a resource has been created on the origin server, the response SHOULD be 201 (Created) and contain an entity which describes the status of the request and refers to the new resource, and a Location header (see section 14.30).

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

我不确定重写 acceptRepresentation() 和重写 post() 之间有什么区别,但是 this示例展示了如何从 POST 返回响应。

关于java - REST 是否可以在 POST 后返回内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1829875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com