web-services - JSON RESTful Web 服务是否应该使用数据契约

标签 web-services json rest spring-mvc design-by-contract

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

最佳答案

与“常规”Web 服务的“契约(Contract)”在 WSDL 文件(包括 XSD)中定义。对于 RESTful 服务,这些文件称为 WADL .而且 spring-mvc 不支持生成 WADL。 (JAX-RS 实现有)。

但即使这样做,RESTful 服务也被认为更“动态”,它们不需要像那样修复。例如,看看 Facebook 和 twitter 的 REST API。它们不提供 WADL 或 JSON 模式。他们提供了一些关于其服务的自由格式文档。这应该足够了。

关于web-services - JSON RESTful Web 服务是否应该使用数据契约,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4469422/

相关文章:

Java 即发即忘 CXF Web 服务调用 Camel 应用程序

c# - 如何使用继承/多态性将 JSON 字符串解析为 C# 对象?

json - 将简单的 curl 数据请求转换为 powershell invoke-webrequest

json - 如何在Elasticsearch中过滤内部对象?

json - Groovy - 如何检查 json 键是否存在

java - 如何注入(inject)自动生成的类?

asp.net - 针对 ASP.NET Web 服务运行自动生成的测试时,某些测试失败并返回 "the communication channel with asp.net could not be configured"

php - 具有属性的 php soap 服务器如何工作,或者是否有一个了解属性的库?

java - @RestController注解中的值有什么作用?

php - 使用 PHP CURL 登录 HP ALM REST API