如何使用Spring HATEOAS更改HAL链接格式

Ton*_*lik 22 rest spring hal spring-mvc spring-hateoas

我正在使用Spring HATEOAS(0.16.0.RELEASE)构建Spring REST应用程序,我希望JSON链接输出看起来像:

_links: {
   self: {
     href: "https://<ip>/api/policies/321"
   }
}
Run Code Online (Sandbox Code Playgroud)

虽然它呈现如下:

   "links":
      [{
       "rel":"self",
       "href":"http://<ip>/api/policies/321"
      }]
Run Code Online (Sandbox Code Playgroud)

我正在使用HATEOAS ResourceResourceAssembler.

为什么我会使用这种格式而不是其他格式?我该怎么改变它?

inf*_*rno 12

为了使用HAL作为RESTful API的消息格式语言,并启用自动分页,我们需要在应用程序中进行一些配置更改.由于Spring Data和Spring HATEOAS已经为配置提供了注释,我们所需要的只是添加这些注释:

@Configuration
@EnableWebMvc
@EnableSpringDataWebSupport
@EnableHypermediaSupport(type = { HypermediaType.HAL })
@ComponentScan(basePackages = {
        "com.jiwhiz.rest"
})
public class WebConfig extends WebMvcConfigurerAdapter {
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer c) {
        c.defaultContentType(MediaTypes.HAL_JSON);
    }
}
Run Code Online (Sandbox Code Playgroud)

@EnableSpringDataWebSupport将添加对分页的支持,而@EnableHypermediaSupport(type = {HypermediaType.HAL})将添加超媒体支持.然后我们将默认内容类型设置为application/hal + json.

引用:使用 Yuan Ji的Spring HATEOAS设计和构建RESTful API