【问题标题】:REST request validation rules for a model模型的 REST 请求验证规则
【发布时间】:2019-10-02 05:15:21
【问题描述】:

我正在编写一个 REST API 和一个 WEB。我真的希望 API 能够为 WEB 提供输入模型的验证和默认值信息。

这是一个虚构的例子:

{
  "name": "string",   // 1 to 50 characters.
  "gender": "string", // Must be one of 'Male', 'Female', 'Legal Entity'
  "BirthYear": "int"  // [1900, 2019] - Default 1999
  "weight": "decimal" // numeric(10, 2) Precision=10, Scale=2
  "deceased": "bool"  // Default = false.
}

我知道我可以使用 EnumDataType 在 Swagger 中列出枚举,但有时我会根据数据库中的值进行动态枚举。例如,性别可能是动态的,因为人们总是认同新的性别:)

那么在 REST 中是否有一种已知的模式如何将这些信息从 API 传递给客户端,例如通过 OPTION 动词?

任何人都可以指出一篇关于此类内容的好文章或信息吗?

【问题讨论】:

标签: rest validation web-applications web-development-server


【解决方案1】:

我认为您应该验证类型,如果该字段不为空,如果数据库中不存在该类型,则抛出 422 状态代码,表示语义错误(客户端想要使用正确的媒体进行 POST/UPDATE类型,正确的语法,但不正确的语义值)。

根据RFC2616的可选方法用于查看支持哪些资源或服务器(例如允许的方法和标头):

HTTP OPTIONS 方法用于描述通信选项 为目标资源。

【讨论】:

  • 我进行服务器验证并在适当的时候返回 422。然而,仅使用它会导致糟糕的用户体验,我想指导用户界面以获得更好的用户体验。例如,告诉 UI 一个小数应该有多少个小数位以及哪些枚举值可用。
猜你喜欢
  • 2018-02-22
  • 1970-01-01
  • 2019-03-13
  • 2014-06-26
  • 2017-12-04
  • 2019-10-09
  • 2017-01-07
  • 1970-01-01
  • 2015-02-26
相关资源
最近更新 更多