gpt4 book ai didi

spring - 如何从Spring Data REST产生的表示中删除超媒体元素?

转载 作者:行者123 更新时间:2023-12-04 13:37:33 25 4
gpt4 key购买 nike

当将Spring Data用于我的REST API时,当前返回的响应包括_links字段:

{
"_embedded": {
"users": [
{
"imageUrl": "some_image_url",
"name": "some name",
"id": "57420b2a0d31bb6cef4ee8e9",
"_links": {
"self": {
"href": "http://localhost:8080/users/57420b2a0d31bb6cef4ee8e9"
},
"user": {
"href": "http://localhost:8080/users/57420b2a0d31bb6cef4ee8e9{?projection}",
"templated": true
}
}
},
...

有没有一种方法可以产生输出,从而隐藏 _links字段?例如。:
{
"_embedded": {
"users": [
{
"imageUrl": "some_image_url",
"name": "some name",
"id": "57420b2a0d31bb6cef4ee8e9",
},
...

我发现,因为我要公开 id字段,所以 _links并不是真正必需的,并且大多数情况下只会使我的回答困惑。

最佳答案

没有。超媒体是REST API的基本特征,Spring Data REST大量使用它来允许您构建可以使用响应中存在的链接导航到相关资源的客户端。

当然,您可以愚弄客户端以不使用该信息,但这将导致更紧密的耦合(因为您无法再在服务器端更改URI,因此您的客户端希望与专用服务器通信,而使用超媒体,您可以将其指向其他服务器等)。

与现有的许多其他自称为REST框架相反,该框架设计的关键方面之一是尊重REST中的基本原理并明确利用它们。或者至少,不要创造诱因来轻易打破它们。这在reference documentationproject website中明确表示。在this presentation on Spring Data RESTthis one on Domain-Driven Design & REST中找到有关关键设计决策的更多信息。

关于spring - 如何从Spring Data REST产生的表示中删除超媒体元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37468260/

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