使用Spring HATEOAS

时间:2015-09-09 13:53:35

标签: rest spring-boot spring-cloud spring-hateoas microservices

我正在调查spring-cloud,并且我已经设置了两个微服务" offer"和"客户"作为尤里卡的客户。

客户应用有:

@Data
public class Customer extends ResourceSupport {
    private Long customerId;
    private String name;
}

@RestController
@RequestMapping("/customers")
@ExposesResourceFor(Customer.class)
public class CustomersController {
    ...
}

并且优惠应用有:

@Data
public class Offer extends ResourceSupport {
    private final Long offerId;
    private final Long priceI;
    private final Customer customer;
}

@RestController
@RequestMapping("/offers")
@ExposesResourceFor(Offer.class)
public class OfferController {
    ...
}

我如何整理代码,以便您可以向Customer个实例添加Offer个链接?自动装配EntityLink当然不会起作用,因为这两个控制器位于不同的应用程序中。

为所有带有@RequestMapping的控制器创建接口并在所有应用程序中共享inerfaces是否合理是否合理,以便您可以使用例如Link link = linkTo(methodOn(OfferController.class).getOffer(2L)).withSelfRel();

1 个答案:

答案 0 :(得分:1)

根据需要链接多少方法,我会手动构建链接,或者在应用程序之间共享api-s并从这些描述符构建链接。我不会为一些链接引入依赖。

更有趣的问题是您打算将哪些内容设置为链接主机?服务的实际主机或尤里卡ID?我建议设置服务的id,然后设置一个zuul实例并处理负载均衡和代理。

P.S:当连接服务时,我总是发现自己在连接它们时遇到了麻烦。部署速度和弹性可能会受到很大影响。