You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring HATEOAS中修改"_embedded"与"_links"的名称?

可以修改这两个字段名,它们并非Spring HATEOAS强制要求的固定标准,框架提供了多种自定义方式来调整这些字段的命名:

1. 通过配置文件全局修改

对于Spring Boot项目,直接在application.properties或application.yml中添加配置即可:

application.properties示例

# 关闭HAL作为默认JSON媒体类型(可选,若不需要严格遵循HAL规范)
spring.hateoas.use-hal-as-default-json-media-type=false
# 去掉默认的下划线前缀
spring.hateoas.json.use-underscore-prefix=false
# 自定义embedded字段名
spring.hateoas.json.embedded-key=embedded
# 自定义links字段名
spring.hateoas.json.links-key=links

application.yml示例

spring:
  hateoas:
    json:
      # 去掉下划线前缀
      use-underscore-prefix: false
      # 替换_embedded为你想要的名称
      embedded-key: embedded
      # 替换_links为你想要的名称
      links-key: links

2. 通过配置类细粒度控制

如果需要更灵活的配置,可以创建自定义配置类来覆盖默认设置:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.hateoas.config.HalConfiguration;

@Configuration
public class HateoasCustomConfig {

    @Bean
    public HalConfiguration halConfiguration() {
        return new HalConfiguration()
                .useUnderscorePrefix(false)
                .embeddedKey("embedded") // 自定义embedded字段名
                .linksKey("links");     // 自定义links字段名
    }
}

补充说明

默认的_embedded和_links是HAL(Hypertext Application Language)规范的默认命名,但Spring HATEOAS并不强制要求遵循该规范,你可以根据自身API的设计需求自由调整这些字段名称。你之前使用@Relation(collectionRelation = "organizations")修改集合名称的操作是正确的,结合上述配置即可实现完全自定义的返回结构。

内容的提问来源于stack exchange,提问作者Pradeep Agrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 03:22:53