传输协议问题
XML的格式可以改为JSON格式
POST /purchaseOrder HTTP/1.1
Host: www.geektime.com
Content-Type: application/json; charset=utf-8 Content-Length: nnn
{
"order": {
"date": "2018-07-01", "className": "趣谈网络协议", "Author": "刘超",
"price": "68"
}
}
协议约定问题
服务发现问题
对于RESTful API来讲,我们已经解决了传输协议的问题–基于HTTP,协议约定问题-基于JSON。最后要解决的是服务发现问题。 有个著名的基于RESTful API 的跨系统调用框架叫Spring Cloud,在Spring Cloud中有一个组件叫Eureka,实现注册中心的,负责维护注册的服务列表。 服务分服务提供方,它向Eureka做服务注册、续约和下线等操作,注册的只要数据包包括服务名,机器Ip,端口号,域名等等。 另外一方是服务消费方,向Eureka获取服务提供方的注册信息,为了实现负载均衡和容错,服务提供方可以注册多个。 当消费方要调用服务的时候,会从注册中心读出多个服务来, Spring Cloud提供一个RestTemplate工具,用于将请求对象转换为JSON,并发起Rest调用,RestTemplate的调用也是分POST、PUT、GET、DELETE,当结果返回的时候,根据返回的JSON解析成对方。