2017-08-12 3 views
0

J'essaie de consommer des API Broadleaf pour créer un panier, ajouter un article et passer une commande sur une application grand public. clonées Application de démonstration et modifié la configuration selon le lien: https://www.broadleafcommerce.com/docs/core/current/broadleaf-concepts/rest/rest-tutorialsLes API Broadleaf ne fonctionnent pas

Problèmes: 1. Créer un nouveau Cart-> POST: http://localhost:8080/api/v1/cart Exception: HttpRequestMethodNotSupportedException: méthode de demande 'POST' non pris en charge Avec requête GET:

travaillées
    Ajouter
  1. ID de produit: POST: http://localhost:8080/api/v1/cart/1?categoryId=1&customerId=100 Exception: HttpRequestMethodNotSupportedException: méthode de requête 'POST' non pris en charge G La demande ET a fonctionné mais le produit n'a pas été ajouté.

3.Ajouter un paiement à l'ordre POST: http://localhost:8080/api/v1/cart/checkout/payment?customerId=100 Ajouté le OrderPaymentWrapper dans le corps comme mentionné dans l'URL ci-dessus Exception: messageKey ": "queryParameterNotPresent", "message":" com. broadleafcommerce.rest.api.exception.BroadleafWebServicesException.queryParameterNotPresent »

Alternativement, appelé https://demo.broadleafcommerce.org/api/v2/swagger-ui.html#/ invoquer l'API selon la documentation de fanfaronnades. même problème, incapable de créer un flux de commande.

J'ai essayé de déboguer en exécutant localhost https://github.com/BroadleafCommerce/DemoSite Même problème.

Veuillez nous aviser.

+0

Quelle version de Broadleaf utilisez-vous? Les API 5.2 (notre dernière version) écoutent sur les ports 8082 et 8445, mais si vous utilisez 8080, il semble que vous n'utilisiez pas la dernière version. La bonne réponse dépend de la version que vous utilisez. – phillipuniverse

+0

Merci @phillipuniverse. Oui, j'ai cloné la dernière application de démarrage Broadleaf Spring et exécuté le module API. Localhost référencé: 8082/api/v1/swagger-ui.html (le même problème que je l'ai mentionné ci-dessus comme la création de panier dit POST demande n'est pas pris en charge). Impossible de créer une commande à l'aide d'API. S'il vous plaît suggérer s'il me manque quelque chose. –

Répondre

0

Cela ressemble à un problème en suspens avec notre annotation @FrameworkController. J'ai ouvert un problème dans Broadleaf au https://github.com/BroadleafCommerce/Issues/issues/3 avec plus d'informations sur les raisons pour lesquelles il échoue actuellement.

La solution de contournement consiste à modifier CustomCartEndpoint dans le projet API que vous devez ajouter dans la méthode createNewCartForCustomer(). L'implémentation finale de CustomCartEndpoint devrait ressembler à ceci:

@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); 
    } 
}