目前我正在尝试使用Spring及其相关组件将.NET内置的API迁移到Java。阻止我完成这个项目的唯一因素是当前版本的Spring HATEOAS(0.25.1)缺乏Affordances,我试图尽可能地复制数据合同,以防止破坏当前正在使用的客户端API。
Spring HATEOAS包含在spring-boot-starter-hateoas Maven依赖项中。
我已经尝试了当前的启动程序依赖项的构建快照,但无济于事(最新的spring-hateos lib未包含在初始构建快照中)。
1)有没有办法将当前里程碑版本包含在我的项目中?如果是这样,你怎么建议我这样做。
2)如果没有办法做到这一点,有没有人对如何将Affordance概念添加到当前版本有任何建议? (此时出现的一些技术债务并不是一个问题,所以如果你有一个不太优雅的工作,请分享它,这将在概念上帮助我)。
3)将HTTP返回对象创建为HashMap并将其序列化为JSON会更好吗? (我知道路径等的链接需要手动处理)
其他版本:spring-boot-starter-parent:2.1.3.RELEASE
谢谢
关于问题1)添加以下依赖关系,不要忘记这个依赖于Spring Milestone Repository。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId>
<version>2.2.0.M1</version>
</dependency>
<repositories>
<repository>
<id>repository.spring.milestone</id>
<name>Spring Milestone Repository</name>
<url>http://repo.spring.io/milestone</url>
</repository>
</repositories>
或者你可以使用版本spring-boot-starter
中的整个2.2.0.M1
,其中包含spring-boot-starter-hateoas
中的1.0.0.M1
。
问题2)不再关心你,问题1)似乎更容易解决。
关于问题3)恕我直言,一个强类型(响应)对象应该几乎在任何地方都是首选,因为它使你的意图更清晰,更容易维护和测试,让你摆脱任何关于转换或隐式类型转换的担忧等等。