小谈关于WADL,ALPS和OData

标题中列举了3个,都实现了RESTFul接口描述的技术,觉得很有趣,想放在一起比较一下。

WADL,是我遇到的第一个,能把REST接口,描述清楚的语法。它是在学习Jersey时,遇到的一个技术,已经是在成为JavaEE标准的roadmap中了。可以参见:https://wadl.java.net。它是基于XML格式,类似WSDL的概念,模仿过来的。

OData,是遇到的第二个,是在工作中遇到的,一片新的天地,绝对强大的新天地。它是基于JSON格式的描述语言,叫做metadata。它不仅规定了DataType,而且还规定了operation类型,更加严格,也更加规范。当然,也缺乏灵活性。

ALPS,是今天才看到的,Spring Data Rest的内容,http://docs.spring.io/spring-data/rest/docs/current/reference/html/#metadata,也有规范作为依靠,https://tools.ietf.org/html/rfc6906。刚刚接触,不太了解,大概浏览了一下,也是基于JSON格式的描述语法。

WADL更像是WSDL的REST版本,是一种补充。OData更像是一种规范的ATOM的Web Resource,有点像Web层的DAO。ALPS更像一种API,类似与REST的Java Doc。

总的来说,语义的自我表述,是一种趋势。引申一步讲,规范,描述比技术,功能或实现,更加重要。我们更希望一个一目了然,一下子知道干什么的工具。其实,也解决了一个程序员的大问题,就是功能和描述不一致。总之,这总,利用技术手段,增强的一致性,才是大势所趋吧。呵呵。