收藏 分享(赏)

RESTful web service.ppt

上传人:j35w19 文档编号:8693646 上传时间:2019-07-07 格式:PPT 页数:16 大小:866KB
下载 相关 举报
RESTful web service.ppt_第1页
第1页 / 共16页
RESTful web service.ppt_第2页
第2页 / 共16页
RESTful web service.ppt_第3页
第3页 / 共16页
RESTful web service.ppt_第4页
第4页 / 共16页
RESTful web service.ppt_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、RESTful web sercice,2,REST简要介绍,REST的全称为Representational State Transfer,翻译为中文是:表现层状态转化。它不是一种框架,也不是一种规范,而是一种网络应用程序的设计风格和开发方式。用来降低开发的复杂性,提高系统的可伸缩性。,3,资源(Resource),所谓RESTful资源指的是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实体。例如:1:一则新闻。2:烟台下午四点的气温。3:存储在国税局数据库里面的商业税率。4:SVN存储的代码版本记录。5:谷歌搜索某关键词

2、所返回的结果。可以用一个URI指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。,4,URI,URI(Uniform Resource Identifier),统一资源标识符。在REST式网络服务里,URI是一个资源的超链接。REST规范并没有定义URI必须是超链接。但是因为我们使用Web技术来开发网络服务,所以在此URI都是超链接。在基于REST的系统中,对资源的管理,定位或者其他操作,URI是不变的。而在非REST系统中,举例来说,比如对同一文件的重命名是一个URI,移动这个文件又是另外一个URI。,5,表现层(

3、Representation),资源是一种信息实体,它可以有多种外在表现形式。我们把资源具体呈现出来的形式,叫做它的“表现层”。比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。URI只代表资源的实体,不代表它的形式。严格地说,有些网址最后的“.html“后缀名是不必要的,因为这个后缀名表示格式,属于“表现层“范畴,而URI应该只代表“资源“的位置。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对“表现层“的描述。,6,状态

4、转化(State Transfer),访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化“(State Transfer)。而这种转化是建立在表现层之上的,所以就是“表现层状态转化“。客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更

5、新资源),PUT用来更新资源,DELETE用来删除资源。,7,无状态(Statelessness),“Statelessness“ 是restful风格最重要的原则。它的含义是指,客户端和服务器交互的过程中(各次请求之间)是无状态的。无状态是针对于“状态”来说的。一个WEB应用协议中的“状态”指的是,为两个相互关联的用户交互操作保留某种公共信息,例如用户登录信息,工作流等,通常由服务器负责保存这些信息。 首先,无状态请求易于实现负载均衡。在分布式web系统下,有多个可用服务器,每个服务器都可以处理客户端请求。 传统的有状态请求,因为状态信息只保存在第一次发起请求的那台服务器上,之后的请求都只能

6、由这台服务器来处理,服务器无法自由调度请求。无状态请求则完全没有这个限制。其次,无状态请求有较强的容错性和可伸缩性。如果一台服务器宕机,无状态请求可以透明地交由另一台可用服务器来处理,而有状态的请求则会因为存储请求状态信息的服务器宕机而承担状态丢失的风险。,8,1:网络上的所有事物都被抽象为资源。 2:网络上的资源都有一个唯一标识符,即URI。 3:对资源的操作通过统一的通用接口规范来访问。 4:对资源的访问不会改变它的唯一标识符,即URI不变 5:所有的操作都是无状态的。,REST的设计原则,9,GET,10,POST,11,PUT,12,DELETE,13,Jakarta Commons

7、HTTP Client,客户端,2019/7/7,客户端代码,import java.io.IOException; import mons.httpclient.HttpClient; import mons.httpclient.HttpException; import mons.httpclient.HttpStatus; import mons.httpclient.methods.GetMethod; public class RESTWithHTTPClient public static void main(String args) HttpClient client = ne

8、w HttpClient();GetMethod method = new GetMethod(“http:/ int statusCode = client.executeMethod(method);if (statusCode = HttpStatus.SC_OK) System.out.println(new String(method.getResponseBody(); catch (HttpException e) e.printStackTrace(); catch (IOException e) e.printStackTrace(); finally method.rele

9、aseConnection(); ,15,Jersey: JAX-RS,服务器,2019/7/7,服务器代码,import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import com.sun.jersey.api.container.httpserver.HttpServerFactory; import .httpserver.HttpServer;import java.io.IOException;/指定URI Path(“/helloworld“) public class Hell

10、oWorld /处理HTTP的GET请求 GET/ 处理请求反馈的内容格式为“text/plain“ Produces(“text/plain“)public String getClichedMessage() return “Hello World!nShaoBaoguo!“;public static void main(String args) throws IOException /创建RESTful WebService服务 HttpServer server = HttpServerFactory.create(“http:/172.20.190.95:9999/“);server.start();/启动服务System.out.println(“RESTful WebService服务已经启动“);System.out.println(“服务访问地址: http:/172.20.190.95:9999/helloworld“); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报