如何使用 Broadleaf REST API?
How can I use the Broadleaf REST API?
我正在尝试使用 Broadleaf 电子商务中内置的 REST API。他们网站上的说明说要在 web.xml
中添加对 /WEB-INF/applicationContext-rest-api.xml
的引用,但 /WEB-INF/applicationContext-rest-api.xml
不存在。新文件名 renamed on January 14, 2015 by @phillipuniverse. The current web.xml
from the DemoSite has a reference (applicationContext-rest-api-security.xml
)。因此,似乎无需执行任何操作即可启用 REST——它们默认处于启用状态。
但是,当我尝试访问它们时,我得到:
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'null' not supported
我真的发了一个Content-Typeheader。这似乎是一个基于 known bug in Jackson 的错误异常。它与不可序列化的类型有关。
我认为这意味着包装 类 需要修复。它们是被序列化的。 (对吗?)我想弄清楚这是因为我做错了什么,还是 BroadleafCommerce 中的错误。
另外,我对 Maven 有点陌生,所以我不确定如何着手解决这个问题。 DemoSite 从存储库中提取 BroadLeafCommerce。我如何告诉它查看我本地的 git BroadleafCommerce 克隆? (我意识到这是一个不同的问题,但它是相关的,因为这是我能想到的解决问题的唯一方法。)
2 种解决问题的方法:
- 将
Content-Type
HTTP header 设置为 application/json
(默认值)或 application/xml
- 从所有端点中删除所有
consumes
,但具有 @RequestBody
的端点除外
例如,如果您的端点注释为:
@RequestMapping(value = "/cart",
produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE},
consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
public class CartEndpoint extends org.broadleafcommerce.core.web.api.endpoint.order.CartEndpoint
您可以将其替换为:
@RequestMapping(value = "/cart",
produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
public class CartEndpoint extends org.broadleafcommerce.core.web.api.endpoint.order.CartEndpoint
我正在尝试使用 Broadleaf 电子商务中内置的 REST API。他们网站上的说明说要在 web.xml
中添加对 /WEB-INF/applicationContext-rest-api.xml
的引用,但 /WEB-INF/applicationContext-rest-api.xml
不存在。新文件名 renamed on January 14, 2015 by @phillipuniverse. The current web.xml
from the DemoSite has a reference (applicationContext-rest-api-security.xml
)。因此,似乎无需执行任何操作即可启用 REST——它们默认处于启用状态。
但是,当我尝试访问它们时,我得到:
org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'null' not supported
我真的发了一个Content-Typeheader。这似乎是一个基于 known bug in Jackson 的错误异常。它与不可序列化的类型有关。
我认为这意味着包装 类 需要修复。它们是被序列化的。 (对吗?)我想弄清楚这是因为我做错了什么,还是 BroadleafCommerce 中的错误。
另外,我对 Maven 有点陌生,所以我不确定如何着手解决这个问题。 DemoSite 从存储库中提取 BroadLeafCommerce。我如何告诉它查看我本地的 git BroadleafCommerce 克隆? (我意识到这是一个不同的问题,但它是相关的,因为这是我能想到的解决问题的唯一方法。)
2 种解决问题的方法:
- 将
Content-Type
HTTP header 设置为application/json
(默认值)或application/xml
- 从所有端点中删除所有
consumes
,但具有@RequestBody
的端点除外
例如,如果您的端点注释为:
@RequestMapping(value = "/cart",
produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE},
consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
public class CartEndpoint extends org.broadleafcommerce.core.web.api.endpoint.order.CartEndpoint
您可以将其替换为:
@RequestMapping(value = "/cart",
produces = {MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE})
public class CartEndpoint extends org.broadleafcommerce.core.web.api.endpoint.order.CartEndpoint