Jhipster - 如何从Gateway向Microservice发送请求/信息

时间:2017-05-26 13:04:54

标签: jhipster

我正在使用Jhipster Microservice Archi,它更适合我的需要。

我正在尝试找到一种方法从Gateway向Microservice发送请求,或者至少向微服务发送更多用户信息(电话号码,电子邮件...)。有没有办法做到这一点?

我想要做的基本上是当用户刚刚注册时,我想从网关向微服务发送请求,以便创建例如TaxiLocation,如果用户的权限是出租车,或者如果创建商店,则用户是店铺经理...

感谢您的帮助。

2 个答案:

答案 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);