JSON RESTful Web服务是否应使用数据协定

Apr*_*Ori 3 rest json web-services design-by-contract spring-mvc

这实际上是一个设计问题.我想知道带有JSON有效负载的Spring3.0 REST Web服务是否提供了类似于遵循契约优先设计的传统Web服务的某种数据协定.我知道JSON的架构类似于XSD,但它在春天适用于哪里?背景:我考虑使用json作为客户端服务器体系结构项目的有效负载,其中客户端是基于.NET的应用程序,数据契约应该提供一种处理客户端的多个版本的方法.客户端应该能够将数据结构发布到服务器.或者我应该采用无模式方法并使用类似于XmlAnyElement的"简单数据绑定"?

Boz*_*zho 5

与"常规"Web服务的"契约"在WSDL文件(包括XSD)中定义.使用RESTful服务,这些文件称为WADL.而spring-mvc不支持生成WADL.(JAX-RS实现).

但即使这样,RESTful服务也被认为更"动态",并且不需要像这样修复它们.例如,看看Facebook和Twitter的REST API.它们不提供WADL或JSON模式.他们提供了一些自由形式的服务文档.这应该足够了.


小智 5

如果客户端应该能够模拟客户端(实际上他们应该)进行单元测试的服务,那么服务应该提供合同.自由格式文档不是测试的可靠基础,因为它留下了误解的空间,而合同却没有.