web service rest(一个最简单的供Android调用webService的rest服务端怎么搭建)

本文目录
- 一个最简单的供Android调用webService的rest服务端怎么搭建
- webservice,soap,rest,wsdl,cxf等的关系是什么
- webservice接口和rest api接口一样各自调用方法一样求 有经验的大神帮忙解释下哈
- 如何在Android使用Rest服务从客户端调用webservice
- REST API 和WebService有哪些不同
- webservice和restful的区别
- rest具体是怎么实现webservice的
- 求助SAP webservise Https 无法打开
- Web Service 是什么 rest又是什么 最近要用这个 一点都没接触过 我要在java下开发
- REST webservice与普通的servlet有什么不同
一个最简单的供Android调用webService的rest服务端怎么搭建
#region Service
/// 《summary》
/// Get Serveic
/// 《哗枝/summary》
/// 《param name="endPoint"友芦贺》URL《/param》
/// 《param name="paramters"》paramter《/param》
protected string Service(string endPoint, Dictionary《string, string》 paramters)
{
//格式化参数
string populatedEndPoint = CreateFormattedPostRequest(paramters);
//创建HttpWebRequest对象
HttpWebRequest req = CreateWebRequest(endPoint + populatedEndPoint, StringUtil.GetStringByte(populatedEndPoint).Length);
//取得返回值
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
Stream stream = resp.GetResponseStream();
string contents = string.Empty;
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
contents = reader.ReadToEnd();
}
resp.Close();
stream.Close();
stream.Dispose();
req = null;
//取得内容Substring方法使用
contents = StringUtil.GetResponseBodyString(HttpUtility.UrlDecode(contents));
return contents;
}
#endregion
#region CreateFormattedPostRequest
/// 《summary》
///
/// 《/summary》
/// 《param name="values"》《好派/param》
/// 《returns》《/returns》
private string CreateFormattedPostRequest(Dictionary《string,string》 values)
{
var paramterBuilder = new StringBuilder();
var counter = 0;
foreach (var value in values)
{
//paramterBuilder.AppendFormat("{0}={1}", value.Key, HttpUtility.UrlEncode(value.Value, Encoding.UTF8));
paramterBuilder.AppendFormat("{0}", value.Value);
if (counter != values.Count - 1)
{
paramterBuilder.Append("&");
}
counter++;
}
return paramterBuilder.ToString();
}
#endregion
webservice,soap,rest,wsdl,cxf等的关系是什么
webservice是一种标准,他可以通过soap或rest的方式来实现。
***隐藏网址***
wsdl是webservice的描述语言,描述服务是怎么回事,怎么调用。
cxf是rest实现webservice的Apache框架,是链敬对rest进行了封装
webservice接口和rest api接口一样各自调用方法一样求 有经验的大神帮忙解释下哈
不一样
WS 有WS的客户端调用仔册
REST 就是简单的HTTP请求,还可以浏览念银宏器直接调用
基于REST FUL的接口性能相比WS 好多了
WS的体系现在很完整,REST是搏高没兴起多久的方式,不过后面REST会占很大份额
楼主,没疑问就采纳了吧
如何在Android使用Rest服务从客户端调用webservice
企业提供特定的服务service,其他用户通过internet即web访问这些服务。换句话说,WebService是两个计算机之间通讯(交谈)的技术,网络中数并一台计算机想要调用另一台计算机的方法时,此时可以需要WebService。很火的SOA、云计算在技术层面上都是WebService
用程序员的观点就是:企业提供实现某功能的函数,其他用过通过在线访问这些函数。
webservice两个重要文件:.aar:服务包文件,提供服务,.wsdl:web服务接口定义语言文件,供客户端使用。
webservice关键技术
1、XML:可扩展的标记语言(XML)是Web service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。
2、SOAP:SOAP是web service的标准通信协议,SOAP为simple object access protocoll的缩写,简单对象访问协议.它是一种标准化的传输消息的XML消息格式。即XML文件的消息格式,由这个协议来决定。SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,xml作为数据传送的格式。
3、Axis2:Axis2是实现Web Service的一种技术框架,是新一代的SOAP引擎,即通过这个架构很方便地实现webservice.即在服务端通过这个技术支持,很方便地发布webservice服务,使开发只关注具体的商业实现,而由这个框架直接发布,节省了开发者的时间。在客户端同样只关注调用。为了使用这个框架,在3个地方需要部署Axis2的库:web服务器tomcat上、eclipse服务端开发axis2库、eclipse客户端开发ksoap2库。
4、WSDL:WSDL的全称是web service Description Language,是一种基于XML格式的关于web服务的描述语言。其主要目的在于web service的提供者将自己的web服务的所有派毕困相关内容,如所提供的服务的传输方式,服务方法接口,接口参数,服务路径等,生成相应的完全文档,发布给使用者。使用者可以通过这个WSDL文档,创建相应的SOAP请求消息,通过HTTP传递给webservice提供者;web服务在完成服务请求后,将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。
5、UDDI:UDDI 是一种目录服务,企业可以使用它对 Web services 进行注册和搜索。UDDI,英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。UDDI是一种创建注册表服务的规范,以便大家将自己的web service进行注册发尘念布供使用者查找.然而当服务提供者想将自己的web service向全世界公布,以便外部找到其服务时,那么服务提供者可以将自己的web service注册到相应的UDDI商用注册网站,目前全球有IBM等4家UDDI商用注册网站。因为WSDL文件中已经给定了web service的地址URI,外部可以直接通过WSDL提供的URI进行相应的web service调用。所以UDDI并不是一个必需的web service组件,服务方完全可以不进行UDDI的注册。
webservice服务端的实现
***隐藏网址***
2、安装axis2插件到eclipse:解压插件,直接拷贝到eclipse的插件目录plugins,两个插件为:org.apache.axis2.eclipse.codegen.plugin_1.6.0.jar、org.apache.axis2.eclipse.service.plugin_1.6.0.jar。打开Eclipse,选择File/New/Other菜单项,看到如下界面表明安装成功:
安装这两个插件的目的是:方便生成Axis2的服务包(.aar文件)和生成Axis2客户端
3、打包生成axis2服务包:
选择服务程序类文件所在的目录,不包括包,选中Include..,表示在生成的服务包中只包括类文件,不包括其他文件。
***隐藏网址***
注意:WSDL是web服务定义语言,通过XML的方式对该服务类进行描述,客户端访问服务时要用到这个文件,可以生成这个文件给客户端,也可以上面的在线获取这个文件。
点击“next”,进入添加服务需要的库文件界面:
需要的库文件直接部署到tomcat中,此处不需要添加,进入下一界面:
选择自动生成service.xml文件。点击进入下一界面:
输入服务名和类名,点击load即可找出该服务程序的全部方法。
输入发布路径,和文件名。生成newWs.aar服务包文件。
***隐藏网址***
eclipse中webservice不能发布的原因:
1、界面问题,把发布界面最大化或拖拽,是界面刷新,就可以看到输入界面了。
2、发布界面最后一步,load时,没有任何反映,是这个类的代码有问题,例如有加载动态库的代码,动态库找不到,则会没有反映。
3、代码没改变的情况下好像只能生成一次,想在生成的话,需要改代码,或需要重启eclipse
webservie服务端:java调用C++动态库的实现
1、在eclipse中编写一个java类文件,应用中的其他类可以调用这个类中的函数:
view plaincopyprint?
01.package util;
02.
03.public class InvokeDll
04.{
05. //测试函数
06. public native int testFunc(int a, int b);
07.
08. //获取最近一次错误代码
09. public native int lastErr();
10.}
package util;
public class InvokeDll
{
//测试函数
public native int testFunc(int a, int b);
//获取最近一次错误代码
public native int lastErr();
}
注意:函数要用native修饰符
2、用javah命令生成C++可调用的.h文件
a、上述java类编译生成类文件InvokeDll.class
b、set classpath="D:\teatInvokeDll\bin",类文件生成在D:\testInvokeDll\bin\util\InvokeDll.class
c、命令行进入D:\teatInvokeDll\bin
d、javah util.InvokeDll
你会发现当前目录下多了一个util_InvokeDll.h文件,文件内容如下:
view plaincopyprint?
01./* DO NOT EDIT THIS FILE - it is machine generated */
02.#include
03./* Header for class util_InvokeDll */
04.
05.#ifndef _Included_util_InvokeDll
06.#define _Included_util_InvokeDll
07.#ifdef __cplusplus
08.extern "C" {
09.#endif
10./*
11. * Class: util_InvokeDll
12. * Method: testFunc
13. * Signature: (II)I
14. */
15.JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc
16. (JNIEnv *, jobject, jint, jint);
17.
18./*
19. * Class: util_InvokeDll
20. * Method: lastErr
21. * Signature: ()I
22. */
23.JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr
24. (JNIEnv *, jobject);
25.
26.#ifdef __cplusplus
27.}
28.#endif
29.#endif
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class util_InvokeDll */
#ifndef _Included_util_InvokeDll
#define _Included_util_InvokeDll
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: util_InvokeDll
* Method: testFunc
* Signature: (II)I
*/
JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc
(JNIEnv *, jobject, jint, jint);
/*
* Class: util_InvokeDll
* Method: lastErr
* Signature: ()I
*/
JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
3、在VC中生成dll如java2dll.dll
a、新建一个空的dll工程,名叫java2dll。
b、把util_InvokeDll.h头文件复制到工程目录下,并添加到header files文件夹里。
c、在source files文件目录中添加一个java2dll.cpp,文件内容是头文件里的方法的实现:
view plaincopyprint?
01.#include
02.#include "util_InvokeDll.h"
03.
04.JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc(JNIEnv *, jobject, jint a, jint b)
05.{
06. int i=0;
07. /*HMODULE hModule = ::LoadLibrary("test.dll");
08.
09. PFUN newfun = (PFUN)::GetProcAddress(hModule,"testFn");
10. i = newfun(a,b);
11. ::FreeLibrary(hModule);
12. */
13. i=a+b;
14. return i;
15.}
16.
17.JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr(JNIEnv *, jobject)
18.{
19. int i=0;
20. return i;
21.}
#include
#include "util_InvokeDll.h"
JNIEXPORT jint JNICALL Java_util_InvokeDll_testFunc(JNIEnv *, jobject, jint a, jint b)
{
int i=0;
/*HMODULE hModule = ::LoadLibrary("test.dll");
PFUN newfun = (PFUN)::GetProcAddress(hModule,"testFn");
i = newfun(a,b);
::FreeLibrary(hModule);
*/
i=a+b;
return i;
}
JNIEXPORT jint JNICALL Java_util_InvokeDll_lastErr(JNIEnv *, jobject)
{
int i=0;
return i;
}d、点击“运行”-》“编译”,这时你会看到很多数据类型没被声明的错误,那是因为util_InvokeDll.h使用了很多JAVA_HOME/include/jni.h文件自定义的数据类型,而jni.h又引
用了JAVA_HOME/include/win32/jni_md.h,这时你需要把jni.h和jni_md.h引入到工程里面来,左击工程名“工程属性”-》“文件/目录”-》“包含文件目录”把JAVA_HOME/include和JAVA_HOME/include/win32文件夹添加,确定后,再次编译一切正常,这时在工程的目录下就找到java2dll.dll文件,这样dll文件就生成了
4、调用其他标准的C++动态库,如test.dll
例如test.dll,是其他人编写的标准的C++动态库,可以在上述注释掉的部分调用,testFn是它里面的函数。
5、在webservice端的java调用
加载库Java2dll,并调用接口函数:
view plaincopyprint?
01.static
02.{
03. //动态库dll文件要放到系统目录或用绝对路径凋用System.load("绝对路径")
04. System.loadLibrary("Java2dll");
05.}
06.
07./实例化调用类
08.InvokeDll dll = new InvokeDll();
09.
10.//调用函数
11.String strRet = dll.testFunc(a, b)
static
{
//动态库dll文件要放到系统目录或用绝对路径凋用System.load("绝对路径")
System.loadLibrary("Java2dll");
}
//实例化调用类
InvokeDll dll = new InvokeDll();
//调用函数
String strRet = dll.testFunc(a, b)
总结:调用过程:java普通类--》java native类--》jni C++ 动态库--》标准C++动态库,最终实现java普通类对标准C++动态库的调用。
REST API 和WebService有哪些不同
从基本原理层次上说,REST 样式和 SOAP 样式 Web Service的区别取决于应用程序是面向资源的还是面向活动的。例如,在传统的WebService中,一个获得天气预报的webservice会暴露一个WebMethod:string GetCityWether(string city)。而RESTful WebService暴露的不是方法,而是对象(资源),通过Http GET, PUT, POST 或者 DELETE来对请求的资源进行操作。在 REST 的定义中,一个 Web Service总是使用固定的 URI 向外部世界呈现(或者说暴露)一个资源。可以说这是一种全新的思维模式:使用唯一资源定位地址 URI,加上 HTTP 请求方法从而达到对一个发布于互联网资源的唯一描述和操作。
所以我理解为rest架构定义的webservice实际上定义了一个借口的规范。
REST其实并不是什么协议也不是什么标准,而是将Http协议的设计初衷作了诠释,在Http协议被广泛利用的今天,越来越多的是将其作为传输协议,而非原先设计者所考虑的应用协议。
REST的思想归结以下有如下几个关键点:
1.面向资源的接口设计
所有的接口设计都是针对资源来设计的,也就很类似于我们的面向对象和茄卖面向过程的设计区别,只不过现在将网络上的操作实体都作为资源来看待,同时URI的设老唤计也是体现了对于资源的定位设计。后面会提到有一些网站的API设计说是REST设计,其实是RPC-REST的混合体,并非是REST的思想。
2.抽象操作为基础的CRUD
这点很简单,Http中的get,put,www.hbbz08.com post,delete分别对应了read,update,create,delete四种操作,如果仅仅是作为对于资源的操作,抽象成为这四种已经足够了,但是对于现在的一些复杂的业务服务接口设计,可能这样的抽象未必能够满足。其实这也在后面的几个网站的API设计中暴露了这样的问题,如果要完全按照REST的思想来设计,那么适用的环境将会有限制,而非放之四海皆准的。
3.Http是应用协议而非传输协议
这点在后面各大网站的API分析中有很明显的体现,其实有些网站已经走到了SOAP的老路上,说是REST的理念设计,其实是作了颤含逗一套私有的SOAP协议,因此称之为REST风格的自定义SOAP协议。
4.无状态,自包含
这点其实不仅仅是对于REST来说的,作为接口设计都需要能够做到这点,也是作为可扩展和高效性的最基本的保证,就算是使用SOAP的WebService也是一样。
webservice和restful的区别
REST是一种架构风格,其核心是面向资源,REST专门针对网络应用设计和开发方式,以降低开发的复杂性,提高系统的可伸缩性。REST提出设计概念和准则为:
1.网络上的所有事物都可以被抽象为资源(resource)
2.每一个资源都有唯一的资源标识(resource identifier),对资源的操作不会改变这些标识
3.所有的操作都是无状态的
REST简化开发,其架构遵循CRUD原则,该原则告诉我们对于资源(包括网络资源)只需要四种行为:创建,获取,更新和删除就可以完成相关的操作和处理。您可以通过统一资源标识符(Universal Resource Identifier,URI)来识别和定位资源,并且针对这些资源而执行的操作是通过 HTTP 规范定义的。其核心操作只有GET,PUT,POST,DELETE。
由于REST强制所有的操作都必须是stateless的,这就没有上下文的约束,如果做分布式,集群都不需要考虑上下文和会话保持的问题。极大的提高系统的可伸缩性。
对于SOAP Webservice和Restful Webservice的选择问题,首先需要理解就是SOAP偏向于面向活动,有严格的规范和标准,包括安全,事务等各个方面的内容,同时SOAP强调操作方法和操作对象的分离,有WSDL文件规范和XSD文件分别对其定义。而REST强调面向资源,只陆敏要我们要操作的对象可以抽象为资源即可以使用REST架构风格蠢洞。
REST ful 应用问题
是否带悉枯使用REST就需要考虑资源本身的抽象和识别是否困难,如果本身就是简单的类似增删改查的业务操作,那么抽象资源就比较容易,而对于复杂的业务活动抽象资源并不是一个简单的事情。比如校验用户等级,转账,事务处理等,这些往往并不容易简单的抽象为资源。
其次如果有严格的规范和标准定义要求,而且前期规范标准需要指导多个业务系统集成和开发的时候,SOAP风格由于有清晰的规范标准定义是明显有优势的。我们可以在开始和实现之前就严格定义相关的接口方法和接口传输数据。
简单数据操作,无事务处理,开发和调用简单这些是使用REST架构风格的优势。而对于较为复杂的面向活动的服务,如果我们还是使用REST,很多时候都是仍然是传统的面向活动的思想通过转换工具再转换得到REST服务,这种使用方式是没有意义的。
效率和易用性
SOAP协议对于消息体和消息头都有定义,同时消息头的可扩展性为各种互联网的标准提供了扩展的基础,WS-*系列就是较为成功的规范。但是也由于SOAP由于各种需求不断扩充其本身协议的内容,导致在SOAP处理方面的性能有所下降。同时在易用性方面以及学习成本上也有所增加。
REST被人们的重视,其实很大一方面也是因为其高效以及简洁易用的特性。这种高效一方面源于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了Http最初的应用协议设计理念。同时,在我看来REST还有一个很吸引开发者的就是能够很好的融合当前Web2.0的很多前端技术来提高开发效率。例如很多大型网站开放的REST风格的API都会有多种返回形式,除了传统的xml作为数据承载,还有(JSON,RSS,ATOM)等形式,这对很多网站前端开发人员来说就能够很好的mashup各种资源信息
安全性
技术没有好坏,只有是不是合适,一种好的技术和思想被误用了,那么就会得到反效果。REST和SOAP各自都有自己的优点,同时如果在一些场景下如果去改造REST,其实就会走向SOAP(例如安全)。
REST对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。而SOAP的成熟性可以给需要提供给多开发语言的,对于安全性要求较高的接口设计带来便利。所以我觉得纯粹说什么设计模式将会占据主导地位没有什么意义,关键还是看应用场景。
同时很重要一点就是不要扭曲了REST现在很多网站都跟风去开发REST风格的接口,其实都是在学其形,不知其心,最后弄得不伦不类,性能上不去,安全又保证不了。
成熟度
SOAP虽然发展到现在已经脱离了初衷,但是对于异构环境服务发布和调用,以及厂商的支持都已经达到了较为成熟的情况。不同平台,开发语言之间通过SOAP来交互的web service都能够较好的互通。
由于没有类似于SOAP的权威性协议作为规范,REST实现的各种协议仅仅只能算是私有协议,当然需要遵循REST的思想,但是这样细节方面有太多没有约束的地方。REST日后的发展所走向规范也会直接影响到这部分的设计是否能够有很好的生命力。
rest具体是怎么实现webservice的
万维网联盟指出,REST是一个如何构建Web服务的模型。REST Web是WWW(基于HTTP)的子集,其中代理提供统一的接口语义,本质上是创建,检索,更新和删除,而不是任意或特定于应用程序的接口,并且仅通过交换表示来操纵资源。那么,现在我们知道REST是什么了,作者将简要列出Roy Fielding在其论文的第五章中提到的所有约束:
- 客户端-服务器:以这样的方式实施服务:将用户界面关注点(客户端获得可移植性)与数据存储关注点(服务器获得可伸缩性)分离开来。
- 无盯姿祥状态:在客户端和服务器之间实现通信时,服务器在处理请求时永远不会利用储存在服务器上下文中的任何信息,而与会话相关的所有信息都存储在客户端中。
- 缓存:当可以(隐式或显式)缓存请求的响应时,客户端应获取缓存的响应。
- 统一接口:所有REST服务都应依赖组件之间相同的统一设计。接口应与提供的凯搏服务解耦。
- 分层系统:册答客户端永远不知道它们是直接连接到服务器还是连接到某些中间服务器。例如,请求可以通过代理,该代理具有负载平衡或共享缓存的功能。
求助SAP webservise Https 无法打开
使用SAP
BO提供的WebService时,可能会出现不可使塌塌用的情况,这时我们可以先告衫中测试一下WebService的链接是否可用。打开链接路径下services/Session进行WebService的测试,如果出现:"Please
enable REST support in WEB-INF/conf/axis2.xml and
WEB-INF/web.xml",说明WebService配置中REST开关未打开。配置切换方式如下:
1.进入服务器的BO服务端安装路径
2.找到如下文件:"\TomcatXX\webapps\dswsbobje\WEB-INF\conf\axis2.xml"(其中XX为tomcat的版本号,BO3.1的是55,BO4.0以上的都袜山是6)
3.打开上述文件,找到true那一行:
把标记出的true改成false,保存。
4.重启Tomcat服务,打开之前所述链接,出现Session信息,配置修改完成。
Web Service 是什么 rest又是什么 最近要用这个 一点都没接触过 我要在java下开发
这是WEB环境下应用开发的重要架构,REST 已经成为最主要的戚茄 Web 服务设计模型。采用了更易于使用、面向资源的搜明模型来公开WEB服务,世仔告具体实现时应该遵循REST的基本设计原则。
REST webservice与普通的servlet有什么不同
一:Web Service基础知识
一个最简单web服务就一个web页面等待请求与处理。更容易理解的方式是Web
Service可以把一个应用变成一个基本WEB方式的请求与处理的应用。常见的两种
Web Service处理方式为:
a. 基于WSDL/SOAP的方式
b. Rest方式
方式a是比较正统的,客户端调用必须先取得WSDL文件,然后生成调用的API才可
以使用。它不是我要说的重点,基本调用流程如下:
方式b是Rest方式,Rest的Web Service的设计原则是基于CRUD,其支持四种操作分
别为:
GET – 获取信息/请求信息内容,绝洞宽大多数浏览器获取信息时使用该方式。
POST – 增加信息内容,显示以前的信息内容,可以看作是insert操作
PUT – 更新信息内容,相当与update
DELETE – 删除信息内容可以看作是delete
Rest方式更加简单便捷,如果从设计原则上看HTTP协议本身已经是最Restful风格的
协议了HTTP协议很好的支持了CRUD的操作。正是因为如此,WEB2.0以来, 基于
Restful的Web Service越来越多的成为首选。
二:认识RestfulStyle
Rest的全称是可表述状态迁移(RepresentationalState Transfer), 可能从字面看有点奇怪
HTTP协议本身无状态协议,其保持连接通过设置请求头字段Connection: keep-alive与
设置过期时间来同时控制。其实Rest方式的WebService也是无状态的这样做的好处最少
有以下两个:
1. 更好的负载平衡,减轻服务器端负担
2. 更快的客户端响应,减少不必要的状态检查。
Restful 风格的兴起,要感谢互联网巨头Google,Facebook等他们提供大量基于Restful
风格的web服务,从谷歌地图到天气预报到翻译,国内的互联网宏羡巨头腾讯,新浪微博也
发布自己的web服务,吸引更多的开发者加入他们的阵营。Rest除了满足基本的CRUD
设计原则之外,还要遵循如下约定:
1. 资源操作可以通过描述来实现即Representation
2. 消息本身是无状态与自我描述(传输支持XML与JSON)
3. 可以发送与接受多个Representation
Rest风格(Restful Style)架构原则:
1. 客户服务器方式
2. 无状态协议传输
3. 支持缓存
4. 统一接口定义
5. 分层系统设计
这样发布了Rest的Web服务API其改变不会影响到客户端程序与实现。如果你的系统
不能适用Rest风格的架构怎么办,重新设计一个新的架构,扩展Rest风格架构。但是
这个世界上绝大数的系统与应用要做的事情就是CRUD。
三. Rest与HTTP
上面已经提到过HTTP协议可能是最Rest风格的协议,而HTTP1.1协议设计的一个原则
就要实现Rest风格。所以毫无疑问HTTP的GET, POST, PUT, DELETE就是最好的证明
但是Rest风格是否可以应用到其它一些协议与系统设计中嘛,答案是肯定的,一个最好
的例子证明就POP3协议, POP3支持Fetch 数据记录,查询记录,更新记录与删除记录
(记录代表email)多么完美的Rest风格协议。
已经存在纳绝亮的HTTP协议应用:
1. 浏览器客户端(你天天上网,不是IE就是Chrome,或者其它浏览器,你懂的)
2. 即时消息通信,MSN/Skype支持
3. 各种内容管理系统
4. 博客系统与微博客户端应用。
5. 你可以来补充/?
Rest消息详解:
1. 跟我们现在知道的HTTP URI没有什么分别,Google静态地图就是一个很好的例子
只是URL加上不同参数就可以fetch不同的地图内容。
2. 可以支持任何类型的数据传输,这点与基于XML与JSON的信息传输有点同,后者
更希望传输文本内容与结构化文本内容
3. SOAP与XML-RPC有严格的消息格式限制,rest没有消息格式要求。客户端调用方
便啊!
Rest风格Web服务的好处,显然易见一个好处就是简化了客户端的调用,不再像WSDL
那般麻烦。从而减低第三方开发者的学习成本,减短了学习曲线。有利于服务推广与普
及,吸引更多用户数量从而带来潜在的商业利益。
在软件即服务(SaaS - Software As A Service)与软件即平台(PasS-Platform
As A Service)中有着重要的地位与应用。这正是那些互联网巨头对Rest风
格感兴趣的原因之一。
四:Rest风格架构
Rest风格可以用在非WEB的系统设计与架构中嘛/?打答案是肯定的,Rest可以用在任何
系统设计中,从本质是上Rest不是一种技术,而是一种架构原则,当然可以用来架构非
WEB的系统。系统越大风格越要象Rest方式如此才是一个成功的架构。
WEB中的面向对象编程
ExtJS, KendoUI(基于JQuery)等JavaScript库已经支持非常方便的从URL中fetch内容
更新数据,前端设计越来越趋向于更加细化的分层设计,而不仅仅是MVC。客户端
程序员应该更多的专注前台用户体验,由于这些框架良好的封装与可扩展行,
JavaScript等语言编程越来越多的引入面向对象的概念与实践。可以好不夸张的说如
今的JavaScript编程与十年之前已经有本质不同。

更多文章:
asp是什么检查项目(医院血液检验项目RPR、TPPA、HIV-Ab各是什么意思)
2026年10月11日 10:20
汇编输出指令(用汇编语言循环指令在屏幕中间输出红底白字的“hello I am 720“)
2026年10月11日 07:20
本地搭建springboot项目(使用eclipse构建springboot项目)
2026年10月11日 06:20
java入门神器好用吗(java 7入门经典适合初学者自学用吗)
2026年10月11日 02:40
unix文件系统采用(Unix采用树形文件系统,其中“树形文件系统”什么意思)
2026年10月11日 00:50
数据可视化界面(FineBI的数据可视化组件设置界面分为哪些区域,错误的是)
2026年10月10日 22:20
matlab2017和2018哪个好(发现matlab2018a占内存较多,下载了2016a的版本,这两个版本有什么不一样的区别吗)
2026年10月10日 21:10





