轻量级RESTful web service接口文档的编写规范文档
2008年与2009年期间,由于工作的原因,比较系统的学习了jersey这个REST框架,并且将其集成到我们的企业开发框架中,时到今日,公司已经完全放弃了原来的技术路线,这样一来,从jersey的研究从1.0.2.0以后,基本没有对后续的版本进行研究,不过,时常也关注一下它的发展动态,总的来说,jersey这个框架的发展还是相当缓慢的。
今天,我在jersey wiki上看到关于jersey的wadl相关内容,大致浏览了下,当然,大家都知道wadl是web service的接口描述文件,然而,想想我们以前那种基于json的接口描述文件,确实轻量了不少,我这里说“轻量”,主要是,很容易让人懂,wadl是基于xml的,很多人对于xml schema了解甚少,因此,通常初学者看到wadl都有一种生畏的感觉。
因此,我将我们两年前的REST接口文档拿了出来,这是我们当时的团队讨论的结晶,希望能给学习jersey或其他REST框架的同学们一点参考。
我们知道,基于REST的web service是以资源为中心的服务,因此,我们设计接口时,URI为接口进行定义,如,在用户管理系统中,对于角色的创建与获取,我们的接口为:
URI:/sys/{sysCode}/role/
对于这个接口,我们有POST与GET两个动作,分别代表创建角色和获取角色,我们分别来看一下这两个动作对应的接口输入输出是什么样的数据格式:
(1) post
描述:增加一个角色到某系统(如质量系统)
Request message header:
Accept: application/jsonContent-Type: application/json
{name:张三, //角色名称desc:取样人员 //角色描述}
Content-type: application/jsonContent-Location:http://www.jlerp.com/sys/001/role/001Response message body:{uid:001,name: 张三,initCaptial: 'zhangsan',desc:取样人员 //角色描述}
Accept: application/jsonCache-Control: max-age=300
Content-type: application/jsonCache-Control: max-age=300
{roles:[{name:zhangsan,uid:001,initCaptial: 'zhangsan',desc:’’},{name:zhangsan2,uid:002,initCaptial: 'zhangsan2',desc:’’},{name:zhangsan3,uid:003,initCaptial: 'zhangsan3',desc:’’}]}
Accept: application/jsonContent-Type: application/json
{Roles:[{roleid:001},{roleid:002}]}
Content-type: application/json
{role:{name:'zhangsan',uid:001,initCaptial:'zhangsan1',desc:’’}}