如何为按类型分隔的实体组织REST API

时间:2018-12-26 11:27:35

标签: rest

我的api资源的以下简化结构称为“任务”:

Task:
  id: int
  type: enum
  status: enum
  input: json
  output: json

这里输入和输出字段的形状可能不同,这取决于类型列的值。

即在POST /tasks中,对于“类型”列的不同值,我期望并验证“输入”列的不同值。

由于我不想在请求正文中仅根据'type'属性的值创建某些字段,因此我想通过url分隔每种类型的请求。我的意思是: 例如,对于type ='type-a'的请求将是具有自己的验证规则的'POST / tasks / type-a' 对于类型为“ b”的请求,将为“ POST / tasks / type-b”,并带有另一个验证规则。

问题在于,我不确定它在概念上是否适合REST体系结构,因为那样的话,对于同一资源,我将有多个“ POST”请求和一个“ GET”请求。 解决方案是为每种类型分别发出“ GET / tasks / {type}”请求。这样,对于客户来说,具有自己类型的每个任务将是单独的资源。但这也使我感到怀疑,因为在内部它是具有相同标识符的相同资源。

0 个答案:

没有答案