JSON RESTful Web服务应使用数据合同
这实际上是一个设计问题。 我想知道是否带有JSON负载的Spring3.0 REST Web服务提供某种类似于遵循合同优先设计的传统Web服务的数据合同。 我知道JSON的架构类似于XSD,但它在春季适合哪里? 背景:我认为使用json作为客户端是基于.NET的应用程序的客户端服务器体系结构项目的有效载荷,并且数据合同应提供处理客户端的多个版本的方法。 客户端应该能够将数据结构发布到服务器。 或者,也许我应该采用无模式的方法并使用与XmlAnyElement类似的“简单数据绑定”?
“常规”网络服务的“合同”在WSDL文件(包括XSD)中定义。 使用RESTful服务时,这些文件被称为WADL。 而spring-mvc不支持生成WADL。 (JAX-RS实现有)。
但即使如此,RESTful服务也被认为更“动态”,并且不需要像那样修复。 例如,看看Facebook和Twitter的REST API。 他们不提供WADL或JSON模式。 他们提供一些自由形式的服务文件。 这应该足够了。
如果客户应该能够嘲笑服务单位测试客户(实际上他们应该),服务应该提供合同。 自由格式文档不是测试的可靠基础,因为它留下了误解的空间,而合同却没有。
JSON Schema和Hyper-Schema是用于指定内容和内容协商的JSON Schema格式。
我一直在使用JSON Hyper Schema来研究HATEOAS(超媒体作为应用程序状态的引擎)API。 您可以转到下面的URL,浏览,注册,登录并执行一些操作。
检查出来,在这里:http://direct.psprt.com:8081/
我到目前为止还打开了我的实际API代码:http://bpanahij.github.io/passportedu_schema/
随意看看,借用和评论。
另外,请查看Javascript JSON-Hyper-Schema客户端。 它通过使用OPTIONS方法解析在给定资源端点提供的Schema来动态构建使用Angular的HTML客户端应用程序。
https://github.com/bpanahij/passportedu_schema/tree/master/client
链接地址: http://www.djcxy.com/p/71483.html上一篇: Should JSON RESTful web services use data contract
下一篇: RESTful API: get/set one "global" single resource without id