有没有人有开发和维护支持XML和JSON的API的经验?我正在寻找有关如何为XML和JSON实现请求验证的一些线索。
背景: 我们有一个基于Java的应用程序公开RESTful API。它接受xml请求,这些请求将根据xml架构进行验证,然后使用JAXB解组为DTO对象。 一切都很好,但最近我们也要求支持JSON。
现在,我们可以继续针对xml架构验证xml并对json使用json-schema。 json-schema规范(http://tools.ietf.org/html/draft-zyp-json-schema-04)仍然是一个草稿(已经过期了!)但在java中已经有一些相当成熟的实现了:https://github.com/fge/json-schema-validator。 明显的缺点是我们被迫维护两个模式(xsd和json-schema),这有点痛苦。
另一种选择是首先解析/反序列化对dto的请求,并在带注释的dto类上使用类似hibernate验证器的东西。优点是我们在一个地方对xml和json都有相同的验证规则。然而,验证将不那么健壮/可靠,因为我们在检查请求之前创建对象。
目前,我倾向于选择选项1并牺牲可维护性来保持稳健性。
还有其他可能的解决方案吗?
非常感谢。