阔叶 API 不工作

Broadleaf APIs not working

我正在尝试使用 Broadleaf APIs 在消费者应用程序上创建购物车、添加项目和结账。 克隆演示应用程序并根据 link 修改配置: https://www.broadleafcommerce.com/docs/core/current/broadleaf-concepts/rest/rest-tutorials

问题: 1.新建购物车-> POST: http://localhost:8080/api/v1/cart 异常:HttpRequestMethodNotSupportedException:不支持请求方法 'POST' 使用 GET 请求:有效

  1. 添加产品编号: POST: http://localhost:8080/api/v1/cart/1?categoryId=1&customerId=100 Exception:HttpRequestMethodNotSupportedException: 不支持请求方法'POST' GET 请求有效但未添加产品。

3.Add 订单付款 POST: http://localhost:8080/api/v1/cart/checkout/payment?customerId=100 如上文所述在正文中添加了 OrderPaymentWrapper URL 例外: messageKey": "queryParameterNotPresent", "message": "com.broadleafcommerce.rest.api.exception.BroadleafWebServicesException.queryParameterNotPresent"

或者,根据 swagger 文档引用 https://demo.broadleafcommerce.org/api/v2/swagger-ui.html#/ 调用 API。 同样的问题,无法创建订单流。

我已经尝试通过 运行 在本地主机 https://github.com/BroadleafCommerce/DemoSite 上进行调试 同样的问题。

请指教

这看起来像是我们的 @FrameworkController 注释中的一个突出问题。我在 https://github.com/BroadleafCommerce/Issues/issues/3 的 Broadleaf 中打开了一个问题,其中包含有关当前失败原因的更多信息。

解决方法是修改 API 项目中的 CustomCartEndpoint,您必须在 createNewCartForCustomer() 方法中添加。 CustomCartEndpoint 的最终实现应该是这样的:

@RestController
@RequestMapping(value = "/cart",
            produces = { MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE })
public class CustomCartEndpoint extends CartEndpoint {

    @Override
    @RequestMapping(value = "", method = RequestMethod.GET)
    public OrderWrapper findCartForCustomer(HttpServletRequest request) {
        try {
            return super.findCartForCustomer(request);
        } catch (Exception e) {
            // if we failed to find the cart, create a new one
            return createNewCartForCustomer(request);
        }
    }

    @Override
    @RequestMapping(value = "", method = RequestMethod.POST)
    public OrderWrapper createNewCartForCustomer(HttpServletRequest request) {
        return super.createNewCartForCustomer(request);
    }
}