gpt4 book ai didi

java - 如何在 Spring Data Rest 中隐藏 _embedded 实体字段

转载 作者:行者123 更新时间:2023-11-30 09:59:49 24 4
gpt4 key购买 nike

我运行基于 Spring Boot Gradle Plugin 的 SDR 应用程序.我最近从 2.1.9.RELEASE 升级了至 2.2.0.RELEASE .虽然不能 100% 确定这就是原因,但 SDR 现在似乎为每个资源公开了一个额外的 _embedded 字段。新字段包含相关实体的数据。

例如,这是一个使用 2.1.9.RELEASE 公开的资源:

{
"uuid": "77315176-cb4f-4126-8e8b-9007457a7ce1",
"name": "root",
"_links": {
"self": {
"href": "localhost/users/1"
},
"user": {
"href": "localhost/users/1"
},
"group": {
"href": "localhost/users/1/group"
}
}
}

使用 2.2.0.RELEASE 公开的相同资源:

{
"uuid": "77315176-cb4f-4126-8e8b-9007457a7ce1",
"name": "root",
"_embedded": {
"group": {
"uuid": "be43382c-7b03-4d28-9597-7284986f700b",
"name": "admin"
}
},
"_links": {
"self": {
"href": "localhost/users/1"
},
"user": {
"href": "localhost/users/1"
},
"group": {
"href": "localhost/users/1/group"
}
}
}

没有证据,我假设有以下缺点:

  1. 它大大增加了响应大小。我可以理解有些用例需要这些额外的数据,但是,在这种情况下,我更喜欢通过制作 Projections 手动公开它。如所须。
  2. 为了收集额外暴露的数据,需要额外的数据库事务,这会对性能产生负面影响。
  3. 更多公共(public) API 默认公开,必须维护。同样,我更愿意使用 Projections以便尽可能减少响应。

这是我的问题:

  1. 是否可以恢复以前的 API 格式,例如自定义新功能还是完全关闭?
  2. 我想知道这是什么设计决策。考虑到上述假设的缺点,新功能有哪些优势?

最佳答案

原来是Spring Data Rest bug .版本2.2.1.RELEASE包含修复程序,可恢复通常的行为。

关于java - 如何在 Spring Data Rest 中隐藏 _embedded 实体字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58572838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com