在本文中,我们讨论如何编写基于Spring Jax-Rs Jersey,HATEOAS API和JerseyTest框架集成的Spring Boot微服务。我们将采用上一篇文章 Spring Boot-Microservice-Spring Data REST和HATEOAS Integration的材料, 并将其重写以用于新的Spring Jax-Rs Jersey用法。
这两篇文章均基于 Spring HATEOAS参考文档 的作者之一Greg Turnquist编写的示例 项目 。如果您已经熟悉此项目及其问题域,请随时跳过其描述。否则,我们鼓励您继续阅读。
问题:您希望实施订单的概念。这些订单具有某些状态代码,这些状态代码指示系统可以执行的转换,例如,只有在付款后才能履行订单,并且不能取消已履行的订单。
解决方案:您必须对一组OrderStatus代码进行编码,并使用自定义的Spring Web MVC控制器强制执行。该控制器应沿用 Spring Data REST 提供的路由。
点击标题见原文, GitHub
(banq注:这种使用OrderStatus编码的解决方案并不是一种DDD面向业务的解决方式,订单状态是影响全局的重要事件和状态,使用简单数字编码代表状态,是一种过于抽象的方式,应采取状态模式或EventSourcing等方式隆重应对,这里只是REST技术举例)