2015-10-15 48 views
1

我必须编写Rest API以在对象上执行CRUD操作,如Employee。用于验证的REST API中的媒体类型

class Employee { 

    String name; 

    String id; 

} 

- 可以有更多的字段,例如我们只考虑2。

在创建和更新可以有很多的验证的时间,像

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

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

  • id只有字母。

在创建时,对于每次验证,我必须给用户正确的消息。如果一个创建操作有多个故障。我必须向用户显示所有消息。

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

+0

什么语言?这与媒体类型有什么关系? –

+0

媒体类型表示对象由API API返回。内容类型是JSON,开发语言是Java。当我们创建并更新Emplyee对象时,它会返回给我们新创建对象的json。 –

+0

*媒体类型表示通过API返回对象*否,媒体类型是Internet上文件格式的两部分标识符。像'application/json'或'text/html' –

回答

0

既然你问了一个设计,我不会采取将代码添加到这篇文章的时候,但这个想法应该是这样的:

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

的数据结构看起来是这样的(以JSON)

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

谢谢Tim,直到现在这是正确的设计,因为我在想这是不正确的。我明白你想要的是什么。如果我在这里有任何其他查询,将ping你。我感谢你的快速和相关的答案。 –

+0

@sandeepgarg你在说什么,这是好还是不好? –

+0

它非常好,我正在使用它。谢谢。 –