2017-05-26 93 views
1

我正在使用Jhipster Microservice Archi,它更適合我的需要。Jhipster - 如何將請求/信息從網關發送到Microservice

我想找到一種方法來發送請求從網關到微服務,或者至少發送一些更多的用戶信息(電話號碼,電子郵件...)到微服務。有沒有辦法做到這一點?

我想要做的事情基本上是當用戶剛剛註冊時,我想從網關發送一個請求到微服務,以創建例如TaxiLocation,如果用戶的權限是出租車,或創建一個商店如果用戶是店鋪經理...

感謝您的幫助。

+0

感謝您的幫助,我終於弄明白了: –

回答

2

你想要做的是微服務之間的通信,所以在這裏,你的網關的後端想要發送請求到你的其他微服務。 我正確嗎?

如果是這種情況,你可以看到這張車票,已經討論:

您有這方面的教程也通過Xetys,從JHipster團隊:

而且,你有一個具體的模塊,它可以做的工作太多,由Christophe製作,從JHipster隊太:

希望,它會幫助你。

+0

這些都是很好的方法,但作爲一種替代方法,您可以向JWT令牌聲明添加更多信息,只要此附加信息不是敏感數據,因爲令牌不是隻加密base64編碼和簽名。 –

+0

謝謝老兄,那就是我一直在尋找的。我會深入研究它;) –

1

感謝您的幫助,我終於想通了:

1 - 一個RequestInterceptor創建一個假死配置等等,然後請求將被authentificate 公共類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

@Fei gnClient(name =「xxxxxxxx」,fallback = MicroserviceClientFallback.class,configuration = FeignConfig。類) 公共接口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);