REST标准 - 输出模型是否应始终与输入模型匹配?

Bra*_*ney 10 c# rest asp.net-web-api

所以我要求部分输出模型必须包含UI重要信息.此信息基本上是文本翻译和日期,价格,长度的建议格式.

所以输出模型的一个例子可能是:

{
  statuses : {
    enumValue1 : "Display This Text",
    enumValue2 : "Display This Text2",
  },
  thePrice : {
    value : 3.50,
    formattedValue : "$3.50"
  },
  length : {
    meters 3,
    formattedValue : "3 ft."
  },
  iAmAPropertyOnlyInGet : 42
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我将它作为我的输出模型,那么拥有完全不同的输入模型是否"可以"?

{
  status : {
    enumValue1,
    enumValue2,
  },
  thePrice : 3.50,
  lengthInMeters : 3  
}
Run Code Online (Sandbox Code Playgroud)

Dar*_*ler 8

发送到源服务器的表示形式可能与您收到的表示形式完全不同.考虑Web浏览器的工作方式.你GET text/html和你发布application/x-www-urlencoded-form.

使用PUT方法时,如果不相同,PUT和GET的相似性是正常的.

REST架构样式不对HTTP有效负载的形状施加任何约束,除了必须在消息中明确指定语义的事实.

因此,实际上,在客户端和服务器之间共享模型类型而不在消息中明确标识该类型是违反自描述REST子约束的.