作者回复: 抱歉,之前没注意到这个问题,今天看到另一个留言发现这里还有一个。我试了一下,你反馈的问题是存在的。我们RestTemplate里用的请求Body需要改一下,增加一层。 req = RequestEntity.post(items.getTemplate().expand()).body(Collections.singletonMap("_links", coffee.getLink("self")));
作者回复: 我们RestTemplate里用的请求Body需要改一下,增加一层。 req = RequestEntity.post(items.getTemplate().expand()).body(Collections.singletonMap("_links", coffee.getLink("self")));
作者回复: 一般情况下,的确是不太会有机会在日常工作的项目中用到HATEOAS。
作者回复: 首先,要为你的锲而不舍的专研精神鼓掌,发现课程的代码和当前2.6.4里的代码差距还是挺大的,你能把各种依赖都搞对,代码也调试好,不容易。 addOrder()里的这段req定义换一下,直接往items里传入coffee对象: req = RequestEntity.post(items.get().getTemplate().expand()).body(coffee); 后面的exchange()就能跑通了。
作者回复: 我们简单的话就让RepositoryRestResource自己来设置。如果希望自己来手动定义的话,可以参考一下Spring HATEOAS的文档的第三部分。
作者回复: RepositoryRestResource给我们生成的rel就是coffees。你可以自己访问一下看看每个链接的详细信息。
作者回复: HAL在很多时候附加的内容还是挺多的,如果对序列化大小、性能有要求,可能还是需要考虑一些因素,在客户端支持上,也要考虑一下,如果试下来都没什么问题,那你可以用一下。但话又说回来,里面很多的语义信息,在你的系统里,可能并用不上,是不是纯粹的JSON更符合你的需要呢,本身RestTemplate已经让调用变得很简单了。