构建RESTful API的关键之一是HATEOAS.现在,泽西岛提供了很好的链接能力(见这个链接).但我已经看到了HAL规范的草案,它似乎是一个经过深思熟虑的工作.
如果有一些lib可以很容易地在泽西岛坚持HAL,我感兴趣.我已经看到草案中提到的引用,如https://github.com/HalBuilder.但是我使用的是直接POJO编组,我不知道如何将它与Halbuilder混合使用.
那么,是否已经有一些将HAL纳入泽西的库?或者我可以使用某种过滤器手动增强生成的POJO?如果是的话,有人能给我一个线索,接下来要做什么?
我想在我的grails域对象beforeDelete()事件中调用一个服务.不幸的是,当事件被触发时,它总是可重复地崩溃.我建立了一个再现问题的例子.域对象:
class Gallery {
def myService
def beforeDelete() {
// System.out.println(myService); // not even this works, same error!
System.out.println(myService.say());
}
}
Run Code Online (Sandbox Code Playgroud)
服务:
class MyService {
String say() {
"hello"
}
}
Run Code Online (Sandbox Code Playgroud)
测试控制器:
class DeleteController {
def index() {
Gallery.list().each {
it.delete()
}
}
def create() {
def gallery = new Gallery()
gallery.save()
}
}
Run Code Online (Sandbox Code Playgroud)
如果我启动应用程序并调用create后跟索引我得到:
Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [testbeforedelete.Gallery#1]
Run Code Online (Sandbox Code Playgroud)
我想要完成的是调用我的服务,这比这个例子复杂一点.我无法解释这种行为,我不知道如何应对这种情况.我知道Hibernate事件需要特别小心,但我被卡住了.