IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

REST débogueur et PUT


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 654
    Billets dans le blog
    65
    Par défaut REST débogueur et PUT
    Bonjour,

    jusqu'à présent je n'ai toujours utilisé REST débogueur pour faire des GET. De ce côté je commence à m'y faire et me suis colleté à PrestaShop avec plus ou moins de succès.
    Maintenant je veux faire des modifications mais comment faut-il procéder pour avoir la même chose que pour le GET (et son sympathique copier/coller de composants) ?
    l'objectif N°1 mettre à jour des informations mal saisies dès le départ et empêchant toute liaison avec mon logiciel
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     <prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
      <combination>
        <id><![CDATA[1263]]></id>
       <id_product><![CDATA[]]></id_product>
        <location><![CDATA[]]></location>
    <ean13><![CDATA[3616600020842]]></ean13>
        <isbn><![CDATA[]]></isbn>
        <upc><![CDATA[]]></upc>
        <mpn><![CDATA[]]></mpn>
        <quantity><![CDATA[]]></quantity>
        <reference><![CDATA[MU1030268644400]]></reference>
        <supplier_reference><![CDATA[]]></supplier_reference>
        <wholesale_price><![CDATA[]]></wholesale_price>
        <price><![CDATA[]]></price>
        <ecotax><![CDATA[]]></ecotax>
        <weight><![CDATA[]]></weight>
        <unit_price_impact><![CDATA[]]></unit_price_impact>
        <minimal_quantity><![CDATA[]]></minimal_quantity>
        <low_stock_threshold><![CDATA[]]></low_stock_threshold>
        <low_stock_alert><![CDATA[]]></low_stock_alert>
        <default_on><![CDATA[]]></default_on>
        <available_date><![CDATA[]]></available_date>
        <associations>
          <product_option_values>
            <product_option_value>
              <id><![CDATA[]]></id>
            </product_option_value>
          </product_option_values>
          <images>
            <image>
              <id><![CDATA[]]></id>
            </image>
          </images>
        </associations>
      </combination>
    </prestashop>
    en bleu la "clé" que j'ai interrogé par GET
    en rouge ce que je veux fournir
    en vert ce qu'il m'est possible de renseigner

    S'il y a moyen de passer directement par un autre moyen (i.e. en envoyant directement le XML) bien sûr je suis à l'écoute

    Les objectifs seront alors ensuite de modifier les stocks, récupérer les commandes etc... mais ça c'est une autre histoire

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 093
    Par défaut
    "REST débogueur" c'est l'outil avec Delphi ?
    ça génére du code à base de quoi ? TRESTClient et TRESTRequest ? je ne l'ai jamais utilisé
    Si oui juste changer la propriété Method avec TRESTRequestMethod.rmPUT
    Pour ma part, avec ces composants, je n'ai fait que du rmGET et rmDELETE sur MS GRAPH et je code tout à la main, tout créé à la volée, disons que j'ai l'habitude

    Sinon si ça génère du TIdHTTP, j'ai du un peu tout faire même du PATCH
    Et pour du THTTPRIO, alors là, c'est trop loin pour que je m'en souvienne

    après cela dépend de l'API, certaines combinent un filtre sur l'URL (les clés) et les nouvelles données dans le JSON dans le cadre d'un REST ... d'autres prennent tout dans le JSON, ça dépend un peu l'humeur du développeur de l'API

    Mais là tu montres du XML, je pige pas c'est du SOAP ?
    Je ne vois pas la question sur une difficulté DELPHI mais plus une API chez PrestaShop dont il faudrait trouver la documentation,
    avec du SOAP/XML, le WSDL, tu diras ce que tu peux modifier avec la liste des fonctions exposées
    avec du JSON, si leur WS est bien fait, tu peux avoir directement la documentation en ligne avec même un générateur d'exemple montrant les différents cas d'utilisation de PUT pour tel point de terminaison
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 654
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    "REST débogueur" c'est l'outil avec Delphi ?
    ça génére du code à base de quoi ? TRESTClient et TRESTRequest ?
    2 oui

    Si oui juste changer la propriété Method avec TRESTRequestMethod.rmPUT
    Ben non, le rmPut ok mais ça ne me dit pas comment je passe les paramètres ?

    Mais là tu montres du XML, je pige pas c'est du SOAP ?
    c'est la seule doc que j'ai trouvée pour l'instant sur l'API combination

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 093
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Ben non, le rmPut ok mais ça ne me dit pas comment je passe les paramètres
    C'est pas une question Delphi, c'est une question à poser à l'auteur de l'API, va savoir ce qu'il a imaginé comme possibilité
    Impossible d'en dire plus sans éplucher de long en large une documentation PrestaShop

    PS : Ayant édité mon message précédent, tu n'as pas forcément répondu à la dernière version.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 093
    Par défaut
    Cela peut-être une requête genre

    Code HTTP : Sélectionner tout - Visualiser dans une fenêtre à part
    PUT <mypsshop.com>/api/combinations/<combinationID>
    avec en JSON en Stream
    Code json : Sélectionner tout - Visualiser dans une fenêtre à part
    {"ean13":"3616600020842", "reference":"MU1030268644400"}

    moi je l'aurais codé ainsi mais c'est une supposition pure et du coup pour l'appeler un code genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
          // VClient reçoit quelque part TRESTClient.Create('https://mypsshop.com');
     
          VRequest := TRESTRequest.Create(VClient); // The Client owns the Request (will free it) and it will assign as Client property
          VRequest.Method := TRESTRequestMethod.rmPUT;
          VRequest.Resource := Format('/api/combinations/%d', [FCombination.ID]);
     
         VRequest.AddBody(JSONStream, ctAPPLICATION_JSON); // JSONStream contient les paramètres selon ce que veut la doc ou alors un bout de XML en mettant ctAPPLICATION_XML
     
          VRequest.Execute();
     
    // Gérer le Error code
    Code HTTP REQUEST HEADER + REQUEST BODY : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    PUT /api/combinations/1263
    Authorization: Basic ou Bearer
    Host: https://mypsshop.com
    Accept: */*
    Content-Length: ...
    Content-Type: application/x-www-form-urlencoded
     
    <?xml version="1.0" encoding="UTF-8"?>
    <prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
    <combination>
        <id>1263</id>
        <id_product>123456789</id_product>
        <ean13>3616600020842</ean13>
        <reference>MU1030268644400</reference>    
     </combination>
    </prestashop>
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 654
    Billets dans le blog
    65
    Par défaut
    Alors, après avoir lu ton post je me rapproche
    Nom : Capture.PNG
Affichages : 739
Taille : 24,9 Ko
    pour ce qui est du REST Debugger il fallait mettre les infos dans le corps personnalisé alors que je cherchais dans les paramètres

    je n'ai plus qu'à travailler le body donc, pour une fin de soirée c'est déjà pas mal.

    Du coup je me pose une question plus "existentielle" : stocker l'id prestashop dans ma BDD me permettrai peut-être d'aller plus vite pour mettre à jour les stocks, je vais dormir dessus car il existe peut-être des moyens pour obtenir l'id via une requête sur l'ean13 (gros doute, ces API ne semblent pas tip top)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Lazarus] Envoyer des données JSON sur API REST par la méthode PUT
    Par Jon Shannow dans le forum Lazarus
    Réponses: 11
    Dernier message: 13/05/2016, 08h30
  2. Une méthode @WS REST avec un PUT non fonctionnel
    Par geforce dans le forum REST
    Réponses: 0
    Dernier message: 27/10/2014, 15h08
  3. [Débutant] web-service-rest-avec-wcf-3-5. comment faire un PUT d'une Liste d'object ?
    Par denfer06 dans le forum Développement Web avec .NET
    Réponses: 2
    Dernier message: 16/04/2014, 14h48
  4. API REST FULL LIMITATION POST GET PUT
    Par headmax dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/05/2013, 02h28
  5. Réponses: 1
    Dernier message: 09/03/2010, 13h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo