如何在Spring HATEOAS中修改"_embedded"与"_links"的名称?
修改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
相关产品推荐
相关产品推荐

