基础知识
1、Web服务请求都涉及的三个步骤:
第一步:准备好要放入HTTP请求的数据:HTTP方法、URI、HTTP报头,以及(对于采用PUT或POST方法的请求而言)需要放进求情实体里的文档;
第二步:把这些数据格式化为一个HTTP请求,然后把该HTTP请求发送给正确的HTTP服务器;
第三步:把服务器返回的数据(响应代码、报头及实体主体)解析为一个数据结构,工程序使用。
2、REST是一种架构,面向资源的架构,其净重对手是RPC;特点是将方法信息和作用域信息都放在URI中。
3、封装库简化了Web服务编程,因为封装的API是专门针对特定服务定制的,根本不需要你了解HTTP.
4、客户端的功能不论,经过大致一样,首先需要和服务器的443端口建立起TCP/IP套接字连接,然后发送HTTP请求,服务端做出响应后,关闭该套接字连接;
5、HTTP报文头和实体主体,请求类的HTTP报文的实体是空的,返回的报文的实体包含内容,这个实体可以是XML,可以使数据结构,也可以是JPEG等格式的图片;
6、现在的编程语言都至少有一个用于发送HTTP请求的库,但是并不是所有的这些库都能排上用处。要构建一个完全通用的Web服务客户端,你需要具备具备以下特征的HTTP库。
1)必须支持HTTPS和SSL证书验证;
2)它必须支持只要的HTTP方法;
3)它必须允许程序员定制PUT或POST请求实体主体里的数据;
4)它必须允许程序员定制请求的HTTP报头;
5)它必须允许程序员获取HTTP响应的响应代码及报头,而不是仅能获取HTTP响应的实体主体;
6)它必须支持通过HTTP代理进行HTTP通信。
7、实体主体是HTTP响应最重要的部分。就Web而言,实体主体通常是一个XML文档,其中包含客户端所需的大部分信息。这些信息经过XML解析器解析之后,便可以为客户端所用;
8、虽然大多数Web服务返回的都是XML文档,不过也有Web服务返回的是JSON字符串的简单数据结构。JSON非常简单,但是为什么不总是采用JSON,而要用XML,JSON适用于表达数据结构;而Web提供的主要是文档------一种不规则的、自描述的、互相链接的数据结构。XML和HTLM专门用于表达文档。假如用JSON来表示一个网页,那会很难看,就像用XML来表示数组一样难看。
9、REST并不是一组架构,而是设计原则; ROA是面向资源的架构。
10、资源?什么是资源?任何事物,只要具有被引用的必要,它就是资源。资源必须拥有一个唯一的URI才有意义。
REST网站
成为REST式网站,并不是轻而易举的。一个经过良好设计的网站,其资源的命名应该是有意义的,其资源的表示是整齐有序、且可以通过HTTP GET来访问的。
如何根据需求创建只读资源?
1)规划数据集
2)把数据集划分为资源
3)用URI为该资源命名
4)设计发给客户端的表示
5)用超链接和表单把该资源与已有资源联系起来;
6)考虑有哪些典型的事件经过;
7)考虑可能出现哪些错误情况
在下面的内容中逐步按照上面的步骤生成一个具有跟Web一样的工作方式的REST式Web服务。
规划数据集
设计一个Web服务,首先要有一个数据集或至少是一个关于数据集的设想。该数据是你将要暴露的,或者想让你的用户构建的。