Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
其他平台如何理解JavaREST服务_Java_Web Services_Rest - Fatal编程技术网

其他平台如何理解JavaREST服务

其他平台如何理解JavaREST服务,java,web-services,rest,Java,Web Services,Rest,我不熟悉RESTWeb服务的概念,我已经使用Jersey试用了一些RESTWeb服务示例。我这里的问题是,假设我有一个用java编写的REST web服务,其他客户机是如何使用它的?例如说它是C#。这是两种不同的语言,但C#如何知道java web服务返回的是哪种数据?我想知道这种跨平台通信是如何在内部进行的?不同的语言和平台可以进行通信,因为它们使用标准协议:在这种情况下,REST构建在HTTP之上,无论客户端(Java、C#等)如何,HTTP都是相同的不同的语言和平台可以进行通信,因为它们使

我不熟悉RESTWeb服务的概念,我已经使用Jersey试用了一些RESTWeb服务示例。我这里的问题是,假设我有一个用java编写的REST web服务,其他客户机是如何使用它的?例如说它是C#。这是两种不同的语言,但C#如何知道java web服务返回的是哪种数据?我想知道这种跨平台通信是如何在内部进行的?

不同的语言和平台可以进行通信,因为它们使用标准协议:在这种情况下,REST构建在HTTP之上,无论客户端(Java、C#等)如何,HTTP都是相同的不同的语言和平台可以进行通信,因为它们使用标准协议:在这种情况下,REST建立在HTTP之上,无论客户端(Java、C#等)如何,HTTP都是相同的。

REST定义了传输层和编码规范,完全独立于编程语言

在Java中,该方法应该返回本机对象,REST框架对XML或JSON进行序列化(实际上,除了提到的是最常见的)


在客户端,客户机指定了应该用来检索数据的类,并且做了几乎相反的事情——逐个字段读取内容并将其分配给本机对象。它使用本机对象字段来猜测字段的类型(字符串、int、double、date等)。

REST定义了传输层和编码规范,它完全独立于编程语言

在Java中,该方法应该返回本机对象,REST框架对XML或JSON进行序列化(实际上,除了提到的是最常见的)


在客户端,客户机指定了应该用来检索数据的类,并且做了几乎相反的事情——逐个字段读取内容并将其分配给本机对象。它使用本机对象字段来猜测字段的类型(字符串、int、double、date等)。

消除语言依赖性主要是因为两件事

1.REST客户端可以是任何可以提交HTTP请求的客户端,以任何语言编写。这是可能的,因为REST使用HTTP协议,所以服务器端将响应任何可以在适当的HTTP URL上ping的客户端


2.响应格式与语言无关(JSON、XML等)。只要目标语言能够解析该响应格式,我们就可以开始了

消除语言依赖主要是因为两件事

1.REST客户端可以是任何可以提交HTTP请求的客户端,以任何语言编写。这是可能的,因为REST使用HTTP协议,所以服务器端将响应任何可以在适当的HTTP URL上ping的客户端


2.响应格式与语言无关(JSON、XML等)。只要目标语言能够解析该响应格式,我们就可以开始了

多谢各位。我还有一个问题,假设我请求了一些东西,作为回应,我得到了一个XML,我们如何标准化它?我的意思是,我们如何确保服务器发送的XML格式与客户端期望的格式相同?
REST
plus
XML
是个坏主意。人们已经离开了他们的SOAP体验。特别是在小节服务请求和响应方面,很少有指导方针是通过编写验证程序和文档来标准化的。非常感谢。谢谢。我还有一个问题,假设我请求了一些东西,作为回应,我得到了一个XML,我们如何标准化它?我的意思是,我们如何确保服务器发送的XML格式与客户端期望的格式相同?
REST
plus
XML
是个坏主意。人们已经离开了他们的SOAP体验。特别是在小节服务请求和响应方面,很少有准则通过编写验证程序和文档来标准化。非常感谢sabirWe使用@products注释来指定从服务返回的数据类型,我的理解是,客户端将从响应头使用此内容类型来理解返回的数据类型。我说的对吗?@DPH:部分是的,它实际上指定了内容类型头,用于确定用于序列化和取消序列化数据的编码(JSON/XML/…)。客户端的本机对象类型仍然必须由客户端代码提供。我们使用@products annotation指定从服务返回的数据类型,我的理解是,客户端将从响应头使用此内容类型来理解返回的数据类型。我说的对吗?@DPH:部分是的,它实际上指定了内容类型头,用于确定用于序列化和取消序列化数据的编码(JSON/XML/…)。客户端上的本机对象类型仍然必须由客户端代码提供。