栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

禁用JSON中的超文本应用语言(HAL)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

禁用JSON中的超文本应用语言(HAL)?

(超)媒体类型

Spring Data REST的默认设置使用HAL作为默认的超媒体表示格式,因此服务器将为给定的

Accept
标头返回以下内容:

  • 没有标题->
    application/hal+json
    -> HAL
  • application/hal+json
    ->
    application/hal+json
    ->哈尔
  • application/json
    ->
    application/json
    -> HAL(这是默认配置)
  • application/x-spring-data-verbose+json
    ->
    application/x-spring-data-verbose+json
    ->一种特定于Spring Data的格式(
    links
    用于链接容器,并
    content
    用作收集项的包装。

如果您配置

RepositoryRestConfiguration.setDefaultMediaType(…)
为非HAL格式,则除非您明确要求,否则服务器将返回特定于Spring
Data的JSON格式
application/hal+json
。诚然,配置选项可能有点误导,所以我提交了DATAREST-294进行了改进。该问题已在2014年的RC1(Dijkstra)中得到解决。

请注意,我们有效地需要一种超媒体格式,以便能够表达受管资源之间的关系并实现服务器的可发现性。因此,您不可能完全摆脱它。这主要是由于以下事实:如果暴露具有双向关系的实体或组成巨大的对象图,则很容易使服务器崩溃。

内联相关实体

如果您永远不希望链接到扇区并始终内联它们,则一个选择是首先简单地将扇区排除

SectorRepository
为导出为REST资源。您可以通过使用注释存储库接口来实现此目的
@RepositoryRestResource(exported= false)

要获得在下例中发布的表示形式,请查看Spring Data REST 2.1
M1中引入的投影功能。基本上,它允许您通过简单的界面在资源上创建与默认视图不同的可选视图。

您基本上可以定义一个接口:

@Projection(name = "foo", types = YourDomainClass.class)interface Inlined {  // list all other properties  Sector getSector();}

如果将此接口放入域类的(子)程序包中,或通过

RepositoryRestConfiguration.projectionConfiguration()
资源公开手动注册,则暴露的资源
YourDomainClass
将接受request参数,
projection
以便
foo
在此示例中传入将按需呈现内联表示形式。

此提交对一般功能的更多信息,这提交已经定义的示例投影。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609043.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号