我正在使用Jhipster Microservice Archi,它更适合我的需要。
我正在尝试找到一种方法从Gateway向Microservice发送请求,或者至少向微服务发送更多用户信息(电话号码,电子邮件...)。有没有办法做到这一点?
我想要做的基本上是当用户刚刚注册时,我想从网关向微服务发送请求,以便创建例如TaxiLocation,如果用户的权限是出租车,或者如果创建商店,则用户是店铺经理...
感谢您的帮助。
答案 0 :(得分:2)
你想要做的是微服务之间的通信,所以在这里,网关的后端想要向你的其他微服务发送请求。 我是对的吗?
如果是这样的话,你可以阅读这张票,已经讨论过:
你也有这个教程,来自JHipster团队的Xetys:
而且,你有一个特定的模块,也可以完成这项工作,由Christophe制作,来自JHipster团队:
希望,它会对你有帮助。
答案 1 :(得分:1)
感谢您的帮助,我终于明白了:
1 - 使用RequestInterceptor创建一个Feign Config,然后请求将进行身份验证 公共课FeignConfig {
@Inject
private JHipsterProperties properties;
@Bean
public RequestInterceptor requestTokenBearerInterceptor() {
return requestTemplate -> {
String token = Jwts.builder().
setSubject("xxx")
.claim("auth", "xxx")
.signWith(SignatureAlgorithm.HS512, properties.getSecurity().getAuthentication().getJwt().getSecret())
.compact();
requestTemplate.header("Authorization", "Bearer " + token);
};
}
}
2-创建MicroserviceClient& MicroserviceClientFallback
@FeignClient(name =" xxxxxxxx",fallback = MicroserviceClientFallback.class,configuration = FeignConfig.class) 公共接口MicroserviceClient {
@RequestMapping(value = "/api/createuser",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
UserInfo createUser(UserInfo user);
}
@Component 公共类MicroserviceClientFallback实现了MicroserviceClient {
private final Logger log = LoggerFactory.getLogger(MicroserviceClientFallback.class);
@Override
public UserInfo createUser(UserInfo user) {
log.warn("Triggered fallback for createUser : {}", user);
return null;
}
}
3 - 最后从休息控制器中调用它
@Inject
private MicroserviceClient microserviceClient;
...
microserviceClient.createUser(userInfo);