【问题标题】:Media type in REST API for validation用于验证的 REST API 中的媒体类型
【发布时间】:2015-10-15 12:53:13
【问题描述】:

我必须编写 Rest API 才能对 Employee 对象执行 CRUD 操作。

class Employee {

   String name;

   String id;

}

- 可以有更多字段,出于示例的目的,我们只考虑 2 个。

在创建和更新的时候可能会有很多验证,比如

  • 员工姓名和 ID 不能为空。

  • 名称不能超过 40 个字符。

  • id 只有字母。

在创建时,对于每次验证,我都必须向用户提供适当的消息。如果一个创建操作有多个失败。我必须向用户显示所有消息。

我正在为此寻找一个好的设计解决方案。

【问题讨论】:

  • 什么语言?这与媒体类型有什么关系?
  • 媒体类型是指API API返回的对象。内容类型为 JSON,开发语言为 Java。当我们创建和更新 Emplyee 对象时,它将返回我们新创建的对象的 json。
  • 媒体类型是指API返回的对象 不,媒体类型是互联网上文​​件格式的两部分标识符。喜欢application/jsontext/html

标签: java validation rest


【解决方案1】:

既然你要求设计,我就不花时间给这个添加代码了,但是想法应该是这样的:

  • 制作一个可以容纳错误的数据结构。最好是用于存储键值对的 HashMap
  • 对于您要验证的每个参数,进行必要的检查。如果没问题,一切都好。如果它在某种程度上是错误的,请在 HashMap 中添加一个条目来描述错误。
  • 验证后,检查HashMap是否有条目。如果是这样,则存在错误,您不应创建用户而应返回错误响应。如果没有,那么您可以创建用户并返回成功响应。

数据结构可能如下所示(在 JSON 中)

{
    "success": "no",
    "error": "validation_failed",
    "validation_errors": [
        {"name": "too long"},
        {"id": "invalid format, must be String"}
    ]
}

【讨论】:

  • 感谢蒂姆,到目前为止,这是正确的设计,因为我认为这是不正确的。我明白你想怎么想。如果我对此有任何其他查询,将 ping 你。感谢您快速中肯的回答。
猜你喜欢
  • 2017-03-12
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 1970-01-01
  • 2014-10-15
相关资源
最近更新 更多