在提到微服务、分布式、Restful的时候,自然而然就想到了spring boot和spring cloud,今天写一写spring cloud客户端如何调用远程服务端提供的接口。
注:这是在同一个注册中心注册的不同服务间的调用。
首先,需要在服务端提供一个接口:
@RestController
public class ServiceTest {
@ResponseBody
@ApiOperation(value = "服务端接口", notes = "")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public Object list() {
List<Object> resultList = service.getIdList();
Map<String, Object> resultMsg = CommonUtil.renderData(StatusCode.ERR_CODE_2202200_OK,
StatusCode.ERR_CODE_2202200_MSG, resultList);
return resultMsg;
}
}
然后在客户端定义一个接口interface,
@FeignClient(name = "ServiceTest")
public interface IServiceTest {
@RequestMapping(value = "/list", method = RequestMethod.GET)
List<Object> getList();
}
通过使用@FeignClient注解就可以调远程的服务端接口了。
说明:
- @FeignClient后面的name值为服务端在注册中心注册的名称,还有一个参数为url,代表服务端访问的ip地址;
- @RequestMapping注解的value值为服务端提供的方法的名称;
- 在接口里定义一个方法,方法名任意,参数列表要和服务端的方法一致。
由于客户端的代码还没有在注册中心注册,所以还没有进行测试,不知道结果怎么样。。。。。