gpt4 book ai didi

spring - 在 spring 数据休息中添加自链接到投影

转载 作者:行者123 更新时间:2023-12-04 16:07:05 27 4
gpt4 key购买 nike

我有一个包含 Products、Prices 和 PricedProducts 的简单应用程序。

当我请求 PricedProducts 列表时,我希望内联价格和产品。我用@RestResource(exported = false) 标记了我的价格存储库,因此对于这个存储库,它可以正常工作。但是,产品需要是独立实体(例如,我需要能够使用相同的产品构建多个 PricedProducts)。

我为 PricedProduct 创建了一个投影,将其添加为 excerptProjection,然后一个 GET 到/priceProducts 返回:

{
"_embedded": {
"pricedProducts": [
{
"price": {
"value": "100.50",
"currency": "EUR"
},
"product": {
"name": "Poatato",
"description": null,
"pictureUrl": null
},
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1"
},
"pricedProduct": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1{?projection}",
"templated": true
},
"product": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1/product"
}
}
}
]
},
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/pricedProducts"
},
"profile": {
"href": "http://localhost:4200/api/v1.0/profile/pricedProducts"
}
}
}

这内联了我的产品,但是它没有为其提供自链接。因此,在我的客户端应用程序中,例如,当有人编辑产品名称时,我不知道必须更新哪个产品,除非我提出额外请求。

我接下来要做的是为 Product 创建一个投影,我在 PricedProduct 的投影中使用它。 GET 到/priceProducts 现在产生:
{
"_embedded": {
"pricedProducts": [
{
"price": {
"value": "100.50",
"currency": "EUR"
},
"product": {
"pictureUrl": null,
"description": null,
"name": "Potato",
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/products/1{?projection}",
"templated": true
}
}
},
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1"
},
"pricedProduct": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1{?projection}",
"templated": true
},
"product": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1/product"
}
}
}
]
},
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/pricedProducts"
},
"profile": {
"href": "http://localhost:4200/api/v1.0/profile/pricedProducts"
}
}
}

现在我的产品有一个自链接,但它指向它的投影 ( http://localhost:4200/api/v1.0/products/1 {?projection})。我想要的是:
{
"_embedded": {
"pricedProducts": [
{
"price": {
"value": "100.50",
"currency": "RON"
},
"product": {
"pictureUrl": null,
"description": null,
"name": "Potato",
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/products/1
}
}
},
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1"
},
"pricedProduct": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1{?projection}",
"templated": true
},
"product": {
"href": "http://localhost:4200/api/v1.0/pricedProducts/1/product"
}
}
}
]
},
"_links": {
"self": {
"href": "http://localhost:4200/api/v1.0/pricedProducts"
},
"profile": {
"href": "http://localhost:4200/api/v1.0/profile/pricedProducts"
}
}
}

谢谢!

最佳答案

我认为最简单、更正确的做法是使用子投影并在客户端解析自链接。

关于spring - 在 spring 数据休息中添加自链接到投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37077137/

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