繁体   English   中英

使用@JsonView和Spring Hateoas

[英]Using @JsonView with Spring Hateoas

如果我在POJO和Spring上的控制器上使用@JsonView ,我的HATEOAS链接将被隐藏。 我可以理解为什么会发生这种情况,因为_links属性没有使用正确的视图类进行注释,但这不是我在这种情况下需要的行为。 有没有办法始终包含_links属性,无论是否使用视图类?

我的POJO看起来像:

@Entity(name = "groups")
@SequenceGenerator(name = "groups_groupid_seq", sequenceName = "groups_groupid_seq")
public class Group extends ResourceSupport {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "groups_groupid_seq")
    @JsonView(Views.Summary.class)
    private long groupID;

    @JsonView(Views.Full.class)
    private String name;

    /*
        Getters & setters ...
     */
}

我的控制器看起来像:

@RestController
@RequestMapping(path = "/group")
@ExposesResourceFor(Group.class)
public class GroupApiController {
    @JsonView(Views.Summary.class)
    @RequestMapping(path = "/", method = RequestMethod.GET)
    public Iterable getPermittedGroups(
            Authentication authentication) {
        // load groups...
    }
}

我的HATEOAS配置:

@Configuration
@EnableAspectJAutoProxy
@EnableEntityLinks
@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
public class HateoasConfig {
    //
}

我不必使用@JsonView ,所以我很乐意使用替代方案。 但我确实需要能够从不同的控制器方法返回同一个类的不同视图,否则我可以使用@JsonIgnore

有没有办法始终包含_links属性,无论是否使用视图类?

使用Spring Boot
设置spring jackson mapper配置spring.jackson.mapper.default-view-inclusion=true在你的application.properties中

使用Spring @Configuration类
“在Spring中配置Object Mapper”中详细介绍了此主题

但是 ,目前HATEOAS特别存在阻止其工作的问题。 特别是开放票“支持HATEOAS-Json-Views中的链接”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM