纯 JSON(非 HAL 格式)的 Spring Data REST

Posted

技术标签:

【中文标题】纯 JSON(非 HAL 格式)的 Spring Data REST【英文标题】:Spring Data REST in plain JSON (not HAL format) 【发布时间】:2016-10-24 14:08:19 【问题描述】:

应如何将 Spring Data Rest 配置为返回纯 JSON 而不是 HAL(带有超媒体链接的 JSON)

相关

Spring returns Resource in pure JSON not in HAL Format when including spring data rest Spring Data Rest -Disable self links(HAL) in Json 和大Disable Hypertext Application Language (HAL) in JSON? 使用 jsonapi 代替 HAL Changing the JSON format for spring-data-rest

【问题讨论】:

【参考方案1】:

将以下属性添加到您的 application.properties 或 yml 。默认是application/hal+json

spring.data.rest.defaultMediaType=application/json

【讨论】:

这不是生成一个简单的 json,而是生成一个包含链接的 json 在我的情况下,它已经具有该值,但我仍然看到 _embeded 响应 这里是更准确的答案:***.com/a/23287265/4151158【参考方案2】:

对我来说spring.data.rest.defaultMediaType=application/json 不生效。但它可以通过编程配置来实现,如下所示:

    public class SpringRestConfiguration implements RepositoryRestConfigurer 
        @Override
        public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) 

            config.setDefaultMediaType(MediaType.APPLICATION_JSON);
            config.useHalAsDefaultJsonMediaType(false);
        
    

【讨论】:

以上是关于纯 JSON(非 HAL 格式)的 Spring Data REST的主要内容,如果未能解决你的问题,请参考以下文章

使用 spring RestTemplate 消耗 json+hal _embedded 资源的问题

Jason中的Spring Data Rest -Disable自我链接(HAL)

从.net核心API返回纯文本/非JSON数据

如何发送纯 JSON 对象(位于模型对象内)以在 Spring Boot 中查看?

SpringMVC中JSON数据交互

关于在Spring中通过注解形式的IoC容器 纯使用 @ComponentScan注解实现对包的自动扫描,实现非XML形式的 注解形式装配Bean类