阔叶树 Sku 对象中的 SkuAttributes 没有响应
SkuAttributes in Sku Object in broadleaf is not coming in response
在 broadleaf 中,我可以看到 sku 包含 skuAttributes
。但是当我尝试使用端点 /catalog/product/{id}..
调用产品信息时,我没有看到 skuAttributes
出现在 api 响应中。如何获取这些 sku 属性值作为响应的一部分?
您需要覆盖 @Configuration
class 中的 SkuWrapper
bean。示例:
@Configuration
public class ApiWrapperOverrides {
@Bean
@Scope("prototype")
public MySkuWrapper blSkuWrapper() {
return new MySkuWrapper();
}
}
public class MySkuWrapper extends SkuWrapper {
@XmlElement(name = "skuAttribute")
@XmlElementWrapper(name = "skuAttributes")
protected List<SkuAttributeWrapper> skuAttributes = new ArrayList<>();
@Override
public void wrapDetails(Sku model, HttpServletRequest request) {
super.wrapDetails(sku, request);
if (model.getSkuAttributes() != null && !model.getSkuAttributes().isEmpty()) {
for (Map.Entry<String, SkuAttribute> entry : model.getSkuAttributes().entrySet()) {
wrapper.wrapSummary(entry.getValue(), request);
skuAttributes.add(wrapper);
}
}
}
}
在 broadleaf 中,我可以看到 sku 包含 skuAttributes
。但是当我尝试使用端点 /catalog/product/{id}..
调用产品信息时,我没有看到 skuAttributes
出现在 api 响应中。如何获取这些 sku 属性值作为响应的一部分?
您需要覆盖 @Configuration
class 中的 SkuWrapper
bean。示例:
@Configuration
public class ApiWrapperOverrides {
@Bean
@Scope("prototype")
public MySkuWrapper blSkuWrapper() {
return new MySkuWrapper();
}
}
public class MySkuWrapper extends SkuWrapper {
@XmlElement(name = "skuAttribute")
@XmlElementWrapper(name = "skuAttributes")
protected List<SkuAttributeWrapper> skuAttributes = new ArrayList<>();
@Override
public void wrapDetails(Sku model, HttpServletRequest request) {
super.wrapDetails(sku, request);
if (model.getSkuAttributes() != null && !model.getSkuAttributes().isEmpty()) {
for (Map.Entry<String, SkuAttribute> entry : model.getSkuAttributes().entrySet()) {
wrapper.wrapSummary(entry.getValue(), request);
skuAttributes.add(wrapper);
}
}
}
}