第7节-微服务之间如何调用?
本节介绍怎么微服务之间如何调用。示例说明:
http://localhost:8088/demo/get
接口调用user
微服务返回数据
1. 新增一个微服务
新增一个微服务
wueasy-cloud-user
,至于微服务如果新增,请参考第一节
1.1 开发接口
/**
* demo
* @author: fallsea
* @version 1.0
*/
@RestController
public class DemoController
{
/**
* 测试
* @author: fallsea
* @return
*/
@RequestMapping(value= "/get",method=RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
public Result<String> get()
{
return new Result<String>().setData(RandomHelper.randomNumeric(6));
}
}
1.2 修改服务端口号
避免微服务端口号重复,这里修改为
8081
server :
port : 8081 #服务端口号
1.3 修改服务名称
这里的微服务名称为
user
spring:
application:
name: user
2. 新增一个微服务客户端
新增一个
user
微服务feign
客户端wueasy-cloud-user-client
,这里是为了方便微服务调用,所以为当前微服务新增一个客户端。
2.1 引入微服务依赖
<dependency>
<groupId>com.wueasy</groupId>
<artifactId>wueasy-cloud-web</artifactId>
<version>最新版本</version>
</dependency>
2.2 新增客户端类
- 新增一个客户端类
UserFeignClient
,里面编写接口信息(接口需要和实际接口一致)
/**
* 微服务客户端
* @author: fallsea
* @version 1.0
*/
@FeignClient(name = "user")
public interface UserFeignClient {
/**
* 测试
* @author: fallsea
* @return
*/
@RequestMapping(value = "/get", method = RequestMethod.GET,consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
Result<String> get();
}
3 微服务调用端
调用
user
微服务/get
接口
3.1 引入feign客户端依赖
引入
user
feign客户端依赖wueasy-cloud-user-client
<dependency>
<groupId>com.wueasy.demo</groupId>
<artifactId>wueasy-cloud-user-client</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
3.2 编写接口
注入客户端
UserFeignClient
,通过注入类调用接口
/**
* demo
* @author: fallsea
* @version 1.0
*/
@RestController
public class DemoController
{
@Autowired
private UserFeignClient userFeignClient;
/**
* 测试
* @author: fallsea
* @return
*/
@RequestMapping(value= "/get",method=RequestMethod.GET,produces = MediaType.APPLICATION_JSON_VALUE)
public Result<String> get()
{
return userFeignClient.get();
}
}
4. 启动服务
分别启动 注册中心、微服务demo、微服务user、网关
5. 测试接口
- 接口地址:
http://127.0.0.1:8088/demo/get
- 请求类型:
GET
- 请求参数:通过
hedaer
方式传入参数token
,值为bearer:1:35c8538dcfefab00d574cf2a48e93f96
- 成功示例:
{ "errorNo": 0, "data": "278255" }