如何查找URI背后的资源类型?

时间:2014-09-23 13:01:21

标签: rest uri

我正在尝试设计一个REST API,其中包括:

  1. 客户端发出HTTP DELETE /users/5
  2. 操作失败,HTTP 409 ("CONFLICT")Location标头指向必须首先删除的相关资源(例如,用户创建的错误报告)。我选择不自动级联删除。
  3. 因为HTTP 409 ("CONFLICT")响应可能指向多种类型的资源,我需要一种方法让客户端查找返回的资源类型(以确保系统了解正在删除的内容,而不是支持删除无可奈何地)。

    适当的行动方案是什么?有没有办法让客户端枚举URI的可用Content-Type?客户应该使用HTTP HEAD调用Accept: */*并将结果Content-Type与已知类型列表进行比较吗?

1 个答案:

答案 0 :(得分:0)

你正在做的事情有点隐蔽。规范仅建议用于201和3xx响应的Location标头。此外,409(冲突)回复说:

  

在这种情况下,响应表示可能包含   有助于根据修订合并差异的信息   历史。
   - RFC 7231, Section 6.5.8

听起来像他们主张使用实体来解释冲突,而不是位置标题。