【问题标题】:HTTP for deleting a resource用于删除资源的 HTTP
【发布时间】:2014-05-20 19:59:11
【问题描述】:

DSTU for REST delete 是简单的发送,DELETE [base]\[type]\[id]

但是,如果服务器实现version aware updates 怎么办?我还需要发送Content-Location HTTP 标头吗?如:

DELETE ...\Patient\123
Content-Location: ...\Patient\123\_history\4

或者 DELETE 是否隐式应用于资源的当前版本?

【问题讨论】:

    标签: hl7-fhir


    【解决方案1】:

    指出您希望删除哪个版本当然是有意义的,特别是因为您仍然可以更新资源以“取消删除”它,所以我们在这里讨论多个版本。但是,Content-Location 标头的定义指出:

    Content-Location 实体头字段可用于提供 消息中包含的实体的资源位置

    使用 DELETE,我们不对实体进行编码。所以,我想知道这是否被允许。不过,值得在 HL7 FHIR 网站和/或 gForge 上讨论这个问题。

    【讨论】:

      【解决方案2】:

      据我所知,正如您在问题中所说,FHIR 并不意味着版本感知删除操作。事实上,DELETE 操作仅意味着您的资源不会被 SEARCH 或 READ 操作检索。也就是说,鉴于您的服务器实现了非标准操作,您可以通过删除特定版本来响应对版本 url 的 DELETE 请求。

      让我说,恕我直言,更改资源历史与任何更改都应可跟踪的理念背道而驰。见http://www.hl7.org/implement/standards/fhir/security.html#audit

      【讨论】:

      • 对不起,重新阅读您的问题,我知道我一开始可能误解了它。据我所知,我猜您只是想知道 DELETE 请求是否必须适用于当前版本的资源。我们在服务器中实现它的方式是在每个资源中都有一个“已删除”标志。当您向资源的 url 发送 DELETE 请求时,服务器将写入该标志设置为 true 的新版本资源,因此删除是一个逻辑操作,对应于在底层持久层上写入的新版本。
      • 谢谢@Origama,你说得对,我只从客户的角度感兴趣。客户端在对版本感知的服务器进行删除时是否需要包含版本(Content-Location)?
      猜你喜欢
      • 1970-01-01
      • 2020-12-23
      • 2018-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      相关资源
      最近更新 更多