我对REST Web服务的概念不熟悉,并且我已经使用Jersey尝试了一些REST Web服务示例。我的问题是,假设我有一个用java编写的REST Web服务,它是如何被其他客户端使用的?例如说它的C#。这是两种不同的语言,但C#如何知道java Web服务返回什么类型的数据?我想知道这种跨平台通信是如何在内部发生的?
答案 0 :(得分:2)
不同的语言和平台可以通信,因为它们使用标准协议:在这种情况下,REST是基于HTTP构建的,无论客户端(Java,C#等)都是如此。
答案 1 :(得分:2)
语言依赖被消除主要是因为两件事,
1.REST客户端可以是任何可以提交任何语言的HTTP请求的客户端。这是可能的,因为REST使用HTTP协议,因此服务器端将响应任何可以在适当的HTTP URL上ping的客户端。
2.Response格式与语言无关(JSON,XML等)。只要目标语言具有解析响应格式的能力,我们就可以了。
答案 2 :(得分:1)
REST定义了完全独立于编程语言的传输层和编码规范。
在Java中,该方法应该返回本机对象,REST框架将序列化转换为XML或JSON(实际上除了提到的内容之外的任何东西都是最常见的)。
在客户端,客户端指定应该用于检索数据的类,并执行相反的操作 - 逐个字段并读取内容并将其分配给本机对象。它使用该本机对象字段来猜测字段的类型(字符串,整数,双精度,日期等)。