对于将被删除的资源,最终使用软删除(Isdeleted Flag),我希望提供一个与审计目的资源一起存储的理由。
我遇到的选项不觉得不正确。customhttp标头
具有身体是错误的,因为它不尊重HTTP规范中定义的均匀界面的语义。
在删除请求中收到的内容没有通常定义的语义,无法改变请求的含义或目标,并且可能导致某些实施方式拒绝请求并关闭连接,因为其潜力作为请求走私攻击
get请求的有效载荷相同。 commant上,删除是正确的选择;软与硬删除是“超出规范范围”,也就是说这是一个实现选择。 但是传达“原因”给您两个问题要解决。 一个是把这个原因放在哪里,答案当然是用一个标题。
可以定义新标头字段,以便当收件人理解它们时,它们可能会覆盖或增强对先前定义的标头字段的解释,根据请求评估定义先决条件,或完善响应的含义。查看是否与您的要求有密切的匹配,但未能定义自己的一个。您可以浏览
Message-Headers注册表
第二个问题是弄清楚如何与客户通信,以便知道使用标头字段。 当今最常见的方法是将标题写入API的描述中,但这不是quite休息。
休息的答案是,您的HyperMedia规范描述了服务器如何与客户端传达哪些标题很重要,以及应该放置哪些数据。 想象一个带有“字段值”输入控件的HTML表单,您已经有了正确的想法。没有很多API会那样做。 tup是一个有趣的选择;规则中没有任何内容说资源只能具有一种内容类型,或者端点只能接受一种内容类型。
实例,RFC7807定义了应用程序/问题+JSON,这是用于报告服务器问题的简单表示形式。 但是,没有理由无法将应用程序/问题+JSON表示形式放在诱导软删除的资源上。 此规范为您提供了一个
title
元素和当然,它不必是应用程序/问题+JSON-您可以指定自己设计的更合适的媒体类型。元素,因此客户有工作空间。
details
,您与使用自定义标头删除的使用相似的问题:client如何发现您的资源支持将删除置于删除?