`
redhacker
  • 浏览: 494322 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

轻量级RESTful web service接口文档的编写规范文档

    博客分类:
  • REST
 
阅读更多
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/json
Content-Type: application/json

Request message body:
{
name:张三,  //角色名称
desc:取样人员  //角色描述
}

Response status:201
Response message header:
Content-type: application/json
Content-Location:http://www.jlerp.com/sys/001/role/001
Response message body:
{
uid:001,
name: 张三,
initCaptial: 'zhangsan',
desc:取样人员  //角色描述
}


(2) get

描述:获取所有角色
Request message header:
Accept: application/json
Cache-Control: max-age=300

Response status:200
Response message header:
Content-type: application/json
Cache-Control: max-age=300

Response message body:
{
	roles:
	[
		{name:zhangsan,uid:001,initCaptial: 'zhangsan',desc:’’},
		{name:zhangsan2,uid:002,initCaptial: 'zhangsan2',desc:’’},
		{name:zhangsan3,uid:003,initCaptial: 'zhangsan3',desc:’’}
	]
}


关于对角色的删除,我们定义的接口是这样的:

URI:/sys/{sysCode}/role/deletebatch/

(1) post

描述:从系统批量删除角色
Request message header:
Accept: application/json
Content-Type: application/json

Request message body:
{
	Roles:[
		{roleid:001},
		{roleid:002}
	]
}

Response status:204
Response message header:
Content-type: application/json

Response message body:
{
role:{
		name:'zhangsan',
		uid:001,
		initCaptial:'zhangsan1',
		desc:’’
}
}


可能到这里,有人会跳出来说,REST强调URI里不能包含动词,所有的动词只有HTTP本身的那几个:POST、GET、DELETE、PUT、HEAD……,我这里URI设计里用了delete,是不是就违反了REST的理念呢?这个问题我改日重新起一个话题来探讨吧,请你关注我的博客哦:)

至于其他接口定义,我就不一一列举了,大家参考后面的附件。

欢迎提出各种宝贵意见!

如果您觉得本文对您有益,请点击博文后的google广告,对作者表示支持,谢谢!
5
1
分享到:
评论

相关推荐

    web service reference

    4. **SOAP (Simple Object Access Protocol)**:一种基于XML的协议,用于交换信息的轻量级协议,它是Web Service消息交换的基础。 5. **WSDL (Web Services Description Language)**:一种基于XML的语言,用于描述...

    java web service 教程

    - **RESTful Web Services**:一种轻量级的Web服务风格,使用HTTP协议的GET、POST、PUT、DELETE等方法来操作资源。它更易于理解和使用。 #### 四、Java Web Service 实践案例 **1. 使用JAX-WS创建SOAP Web服务** ...

    使用eclipse创建restful webservice 工程

    它基于Representational State Transfer(表述性状态转移)架构原则,提供了一种轻量级、无状态、可缓存的交互模式。本文将详细介绍如何使用Eclipse IDE创建一个RESTful Web服务工程。 首先,我们需要确保Eclipse...

    轻量级J2ee企业应用

    《轻量级J2EE企业应用》是一本深入浅出的Java EE(以前称为J2EE)技术指南,由知名讲师李刚倾力编写。这本书旨在帮助读者掌握如何在实际项目中有效地运用轻量级Java EE框架,以实现高效、灵活的企业级应用开发。Java...

    Apache CXF Web Service Development

    - **REST (Representational State Transfer)**:一种设计风格,强调资源和超媒体控制,常用于构建轻量级的Web服务。 #### 三、关键知识点详解 ##### 1. **Apache CXF的核心特性** - **可扩展性**:CXF通过其模块...

    jersey restful webservice 所需包2.22版

    6. **容器集成**:Jersey 可以与多种 Java 应用服务器和轻量级容器(如 Tomcat、Jetty)集成,允许你将 RESTful 服务部署到这些环境中。 7. **测试**:Jersey 提供了测试框架,允许你编写单元测试和集成测试,以...

    第15章 开发XFire Web Service应用.pdf

    XFire是一个轻量级且灵活的Java SOAP框架,它提供了简单的方式来构建和部署Web服务。XFire支持多种服务端点类型和服务实现模型,包括: - **基于XML Schema的服务定义**:允许开发者直接从XML Schema生成服务接口。...

    restful-web-service

    RESTful Web服务是一种基于HTTP协议的、轻量级的网络通信方式,广泛应用于现代Web应用程序中,特别是API接口的设计。这种服务风格强调了资源的概念,使用HTTP方法(GET、POST、PUT、DELETE等)来操作资源,使得接口...

    在web项目中新增或者添加webservice服务

    在Web项目中添加Web服务...理解Web服务的工作原理、选择合适的框架、编写规范的接口、保证服务安全性和稳定性,都是Web开发中不可或缺的部分。通过实践,你可以更好地掌握这个过程,并为你的Web项目增添有价值的服务。

    webservcice完全资料

    - **REST(Representational State Transfer)**:一种轻量级的Web服务设计模式,基于HTTP方法(GET、POST、PUT、DELETE等)操作资源,常用于构建更加用户友好的API。 Web服务的应用场景广泛,例如: 1. **企业间...

    restful-service

    本项目"restful-service"专注于使用Jersey 2.13框架构建RESTful服务,这是一个Java实现的轻量级RESTful服务库,兼容JAX-RS 2.0规范。 首先,我们需要了解REST的基本概念。REST是一种架构风格,它强调资源的表述和...

    尚商城笔记一(SOA).docx

    - **REST 概念**: REST(Representational State Transfer)是由 Roy Thomas Fielding 博士在 2000 年提出的,它是一种设计风格而非规范或软件,强调利用 HTTP、URI 和 XML/JSON 等标准进行轻量级、跨平台和跨语言的...

    webservice

    JAX-WS主要用于SOAP协议,而JAX-RS则关注RESTful风格的服务,它更轻量级,易于理解和实现。 在实际开发中,我们可能还会遇到WS-Security(Web Services Security)这样的标准,用于确保Web服务的安全性,包括身份...

    使用Java Web服务构建SOA源代码

    REST是一种轻量级的架构风格,常用于构建更简单、更直观的Web服务。JAX-RS(Java API for RESTful Web Services)是Java平台上的REST规范,可以用于创建RESTful服务。 9. **HTTPS和安全性**:为了保证Web服务的安全...

    JavaEE_6_API帮助文档.zip

    JavaEE 6是Java平台的一个版本,旨在简化企业级开发,引入了模块化和轻量级组件,降低了复杂性。 此压缩包包含一个名为“JavaEE_6_API帮助文档.chm”的文件,这是一个Windows平台下的CHM(Compiled HTML Help)格式...

    J2EE.Platform.Web.Services

    2. **JAX-RS**:针对RESTful风格的Web服务,JAX-RS提供了一种轻量级的方法来创建和消费HTTP服务。它允许开发者通过注解Java类和方法来定义资源和操作,使得RESTful服务的开发更加直观和高效。 **Web服务的生命周期*...

    C#webservice

    - **SOAP**:SOAP是一种轻量级的消息协议,用于在Internet上交换结构化和类型化的信息。它基于XML,允许服务消费者和服务提供者之间进行通信。 - **WSDL**:Web Service Description Language,用来描述Web ...

    JavaEE6规范中文版

    JavaEE6规范强调了轻量级和简化开发,推出了GlassFish应用服务器的轻量级版——Web Profile。Web Profile只包含了Web应用所需的基本组件,如Servlet、JSP、JSF、CDI(Contexts and Dependency Injection)、JPA和...

    webservice测试调用工具WebserviceStudio20.rar

    5. **多协议支持**:除了SOAP,WebserviceStudio20还可能支持RESTful Web Services,这种轻量级的协议常用于简单的数据交换。 6. **参数化测试**:对于需要大量数据输入的测试场景,工具可能提供参数化功能,允许...

Global site tag (gtag.js) - Google Analytics