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

API, COM et SDKs Delphi Discussion :

Composants REST, Récupérer les informations du header


Sujet :

API, COM et SDKs Delphi

  1. #1
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut Composants REST, Récupérer les informations du header
    Bonjour, c'est le début du week-end et quelque chose me titille
    Quand j'utilise Rest Debugger j'ai, entre autres, ces informations

    Nom : Capture.PNG
Affichages : 247
Taille : 18,3 Ko

    quand on suit le processus jusqu'au bout, on obtient ces composants
    Nom : Capture_1.PNG
Affichages : 237
Taille : 5,5 Ko
    lequel et quelle propriété me permet de récupérer les données de l'en tête (en particulier X-WP-Total et X-WP-TotalPages)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    TRESTResponse.Headers je dirais naïvement.
    TRESTResponseAdapter contient aussi 'Headers' comme TBindSourceAdapterField<TString> ça c'est du Live-Bindings, je suppose, je crois que tu utilises ça, moi j'ai encore jamais essayé.
    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 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Grand naif
    Nom : Capture.PNG
Affichages : 227
Taille : 7,4 Ko
    je suis resté sur les propriétés visibles
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    J'étais vraiment fatigué hier soir !
    Pour la petite histoire, il s'agissait d'obtenir le nombre de commandes WooCommerce enregistrées.

    requête : https://xxxxxxxx.xxx/eshop/wp-json/wc/v3/orders avec un paramètre per_page=1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure TFormTest.Button2Click(Sender: TObject);
    begin
    RestRequest1.Execute;
    if RESTResponse1.Status.Success then
      begin
        memo1.Lines.Clear;
        memo1.Lines.AddStrings(RestResponse1.Headers);
        ShowMessage(memo1.Lines.Values['X-WP-Total']);
       end;
    end;
    Nom : Capture.PNG
Affichages : 222
Taille : 18,3 Ko

    NB. X-WP-Total = X-WP-TotalPages puisque le paramètre per_page=1

    Mes premiers tests pour l'application que je suis en train d'écrire (récupération des commandes Woocommerce vers notre ERP) utilise Cdata Woocommerce mais j'en suis déçu niveau temps d'exécution.
    Ce test va me permettre de vérifier si je peux faire mieux sans (du moins pour la partie récupération de la liste des commandes)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Pour information, j'obtiens quasiment le même temps, en récupérant toutes les informations

    Nom : Capture.PNG
Affichages : 216
Taille : 11,5 Ko

    Conclusion : Si CData est plus "simple", en termes de nombre de composants à déposer (2 au lieu de 5 pour REST) et d'une possibilité de requêtes pour réduire le nombre de colonnes, le prix reste un frein important.

    NOTE : Si j'arrive à réduire aux colonnes souhaitées la requête REST (là je suis dépendant de l'API) je pense avoir un gain de temps significatif. Affaire à suivre
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  6. #6
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    L'avantage c'est que tu peux aussi intervenir côté serveur en copiant le programme de l'API qui t'intéresse pour réduire son contenu. Enfin, quand on te laisse faire ce que tu as à faire côté serveur, bien entendu.

  7. #7
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    NOTE : Si j'arrive à réduire aux colonnes souhaitées la requête REST (là je suis dépendant de l'API) je pense avoir un gain de temps significatif. Affaire à suivre
    Ce n'est pas possible que je sache.

    Mais tu peux récupérer les données par bloc de 100, pourquoi les prendre une à une ? Une boucle en définissant per_page=100 et en incrémentant page jusqu'à atteindre X-WP-TotalPages. 6 requêtes à la place de 534, y'a pas photo...

    Reste à savoir pourquoi tu dois récupérer toutes les ventes. Le but en production étant plutôt de mettre en place un webhook pour être notifié en quasi temps réel des modifications.

  8. #8
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par pprem Voir le message
    Enfin, quand on te laisse faire ce que tu as à faire côté serveur, bien entendu.
    Ben justement, si on me laissait faire je galèrerais moins.
    La société qui a conçu le site m'a laissé sans accès à la base de données lors de la mise en place et ce pendant presque 6 mois "Si vous touchez aux données, nous ne garantissons plus le site" alors que je ne fais que de la lecture !
    À mon avis, le site n'était pas prêt, mais de là à m'empêcher de faire des lestures de données !!!

    Citation Envoyé par pprem Voir le message
    En copiant le programme de l'API qui t'intéresse pour réduire son contenu.
    Oui, ça j'arriverais certainement à le faire, si je savais comment m'y prendre pour accéder au site pour pomper l'API, ajouter un peu de PHP à mon carquois (pour mon arc) langages ne serait pas pour me déplaire c'est même une des pistes que j'envisage pour utiliser mon compte CPF avant mes derniers 400 jours
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    Ce n'est pas possible que je sache.
    Hélas, c'est une demande pendante, comme la possibilité de récupérer à partir d'une id
    Mais je suis soufflé par le manque "d'écologie" pourquoi envoyer tout le contenu d'un ordre alors que je n'en veux qu'une infime partie (id, status et quelques autres) c'est de nombreux octets inutiles qui transitent sans réel besoin

    Mais tu peux récupérer les données par bloc de 100, pourquoi les prendre une à une ?
    le 1 est juste pour récupérer le nombre total
    50 est le nombre utilisé par Cdata (50 par défaut) valeur de mon test

    pour info, avec 100, je ne "gagne" que quelques secondes
    Nom : Capture.PNG
Affichages : 203
Taille : 12,3 Ko



    Reste à savoir pourquoi tu dois récupérer toutes les ventes.
    Uniquement celles non traitées dans l'ERP d'où mon idée pas encore testée d'utiliser le paramètre include
    pour être notifié en quasi temps réel des modifications.
    ce n'est pas prévu pour être du temps réel, juste un travail 1 à 2 fois jour
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  10. #10
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    le 1 est juste pour récupérer le nombre total
    Ok, j'avais mal lu.

    Citation Envoyé par SergioMaster Voir le message
    Uniquement celles non traitées dans l'ERP d'où mon idée pas encore testée d'utiliser le paramètre include
    include implique de connaitre les IDs à récupérer et donc logiquement de remplir cette liste par webhook. Un webhook sur une vente ne retourne que deux informations : son ID (évidemment) et son statut (exactement ton screenshot).

    Mais il y a un filtre (non documenté) qui devrait certainement te convenir pour un traitement sporadique : modified_after. Exemple /wp-json/wc/v3/orders/?modified_after=2022-05-22T00:00:00Z.


    Cela dit, ton test est extrêmement lent. Un essai Postman me permet de récupérer 100 éléments en 2.5s. Tu n'aurais pas un problème de rafraichissement systématique du access token multipliant les requêtes ?

    Perso je n'utilise pas les composants REST que je trouvais très lourds et ai préféré faire mes propres routines basées sur TNetHttpClient. Je ne fais également appel qu'aux APIs sans plug-in particulier, mais je tire profit des hooks.

  11. #11
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Andnotor Voir le message
    include implique de connaitre les IDs à récupérer et donc logiquement de remplir cette liste par webhook. Un webhook sur une vente ne retourne que deux informations : son ID (évidemment) et son statut (exactement ton screenshot).
    j'avais pensé créer ma liste des include par un CTE Recursive(Firebird)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    WITH RECURSIVE nombres AS (
        SELECT :MINID nbr  
        FROM rdb$database
        UNION ALL 
        SELECT nbr + 1
        FROM nombres 
        WHERE nbr <= :MAXID)
     
    SELECT list(CAST(nbr AS INTEGER)) FROM nombres n LEFT JOIN CMDE_WOOCOMMERCE w on w.IDWOOCOMMERCE=n.nbr
    WHERE w.IDWOOCOMMERCE is null

    Exemple /wp-json/wc/v3/orders/.
    c'est la même requête https://xxxxxxxx.xxx/eshop/wp-json/wc/v3/orders les paramètres étant définis par la suite
    NB. je ne connaissais pas le tag [ c ] du forum , nettement moins long à écrire

    Cela dit, ton test est extrêmement lent. Un essai Postman me permet de récupérer 100 éléments en 2.5s.
    Je suis d'accord, c'est lent, avec RestDebugger j'ai 2.1 secondes
    Je pense que c'est l'interpréteur (RestreponseAdapter) qui est le coupable, je vais tenter de l'éviter pour voir

    Tu n'aurais pas un problème de rafraichissement systématique du access token multipliant les requêtes ?
    pour l'instant je ne passe pas par un access token (c'est probablement une erreur, que je corrigerai ensuite) c'est une connexion "BASIC"

    Perso je n'utilise pas les composants REST que je trouvais très lourds et ai préféré faire mes propres routines basées sur TNetHttpClient. Je ne fais également appel qu'aux APIs sans plug-in particulier, mais je tire profit des hooks.
    c'est comment les appeler, ces hooks, qui me serait profitable, parce que là je ne vois pas comment faire
    TNetHttpClient est aussi une piste que j'ai négligée
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  12. #12
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Côté WooCommerce, ça se défini dans : Réglages -> Avancés -> Crochet Web.

    Les données sont :

    Nom
    un nom quelconque.

    Etat
    A mettre sur activé évidemment.
    Ce qu'il faut savoir ici est que si l'envoi échoue toujours après plusieurs tentatives (je n'ai plus en tête le nombre par défaut), l'état va passer automatiquement en pause et tu ne recevras plus rien jusqu'à réactivation manuelle !
    Pour palier à ce problème, je te conseille vivement de créer un thème WordPress enfant et d'augmenter la limite. Ca se fait à l'aide d'un filtre dans functions.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Ne désactive jamais les webhooks
    add_filter('woocommerce_max_webhook_delivery_failures', 'andnotor_woocommerce_max_webhook_delivery_failures');
    function andnotor_woocommerce_max_webhook_delivery_failures($number) {
        return 999999999; 
    }

    Sujet
    C'est ce que tu veux surveiller, par exemple Commande créée. Perso je préfère passer par des Action qui permettent plus de finesse.

    Evénement action
    Si tu as choisi Action précédemment.
    Il y en a pléthore et perso j'en utilise 4 : woocommerce_order_status_processing, woocommerce_order_status_completed, woocommerce_order_status_refunded et woocommerce_order_partially_refunded.

    URL de livraison
    Le script php sur ton serveur.
    Pour tes premiers essais, tu peux passer par ce site https://webhook.site. Tu verras ainsi ce qui transit sans te fatiguer.

    Secret
    Une suite de caractères quelconque. Le message de notification est haché et et ce hash est retourné dans HTTP_X_WC_WEBHOOK_SIGNATURE en base64. Dans ton script php, tu feras la même chose pour valider la notification $signature = base64_encode(hash_hmac('sha256', $body, $secret, true)); et if ($signature == $_SERVER['HTTP_X_WC_WEBHOOK_SIGNATURE']) {traitement}.

    Version de l'API
    A laisser sur v3.


    Voilà c'est pas plus compliqué que ça !


    Pour les tests, c'est pas mal aussi d'activer les notifications instantanées histoire de ne pas perdre de temps, sinon ça passe par une tâche CRON et il faut patienter quelques secondes ou minutes. Toujours dans functions.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // DEBUG : Webhook immédiat (sans CRON)
    add_filter( 'woocommerce_webhook_deliver_async', '__return_false');
    Dans le script php et puisque tu ne veux pas gérer immédiatement les données, tu peux simplement insérer dans une table l'ID et statut après contrôle de la signature, table que tu videras quand tu veux. Juste quelques lignes de code


    Citation Envoyé par SergioMaster Voir le message
    NB. je ne connaissais pas le tag [ c ] du forum , nettement moins long à écrire
    Et très peu connaissent le tag [noparse] qui te permet d'écrire [c] à la place de [ c ]

  13. #13
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Merci pour ces explications. J'ai effectivement vu la page Woocommerce/Réglages/Avancé/Crochets Web, mais étais bloqué sur l'URL de livraison.

    Toujours dans functions.php :
    Dans le script php et puisque tu ne veux pas gérer immédiatement les données.
    Juste quelques lignes de code
    Voilà le point noir, je suis obligé de passer par le prestataire gérant le site et, le connaissant, il va facturer honteusement un boulot que j'aurais pratiquement fait à sa place ! (ça m'est déjà arrivé)
    Je n'ai que des relations épisodiques avec eux, car la moutarde me monte vite au nez (cf ma réponse à Patrick post #8).

    et merci pour ce nouveau tag
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  14. #14
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 693
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 693
    Points : 13 128
    Points
    13 128
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Voilà le point noir, je suis obligé de passer par le prestataire gérant le site
    Ca c'est pour functions.php uniquement (le thème enfant) mais ce n'est pas obligatoire dans un premier temps. Cela dit, ce thème dérivé existe peut-être déjà. Difficile de personnalisé un site WordPress sans lui (à moins de créer des plugin-ins de A à Z).

    Mais lorsque je parle de "script php" c'est bien de ton côté ; un serveur http ayant accès à la base de données de ton ERP.



    ps : on est plus trop dans Delphi là. J'espère ne pas soûler les lecteurs

  15. #15
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Pour le nombre de colonne, voir si le Service REST supporte un modèle de protocole type ODATA avec l'opérateur $select=id,status,... soit https://xxxxxxxx.xxx/eshop/wp-json/wc/v3/orders/?$select=id,status,...&Autre=Param&...

    Si CData permet de faire des requêtes pour réduire le nombre de colonne, faut espérer que c'est un vrai filtre envoyé au serveur et pas juste un masquage des données inutilisées.
    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

  16. #16
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Pour le nombre de colonnes, voir si le Service REST supporte un modèle de protocole type ODATA avec l'opérateur
    Pas de ça chez woocommerce ou alors bien caché

    Si CData permet de faire des requêtes pour réduire le nombre de colonnes, faut espérer que c'est un vrai filtre envoyé au serveur et pas juste un masquage des données inutilisées.
    vu mes tests, c'est juste un masquage de données donc je suis en train d'abandonner son utilisation

    Avec ma méthode utilisant le parametre include je "tombe" à 4 secondes donc je garde

    Désormais j'ai un autre problème (rien à voir avec REST) je n'arrive plus à retrouver ma table pour la lier visuellement, dès fois, c'est galère Livebindings !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  17. #17
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Désormais j'ai un autre problème (rien à voir avec REST) je n'arrive plus à retrouver ma table pour la lier visuellement, dès fois, c'est galère Livebindings !
    ça, c'est résolu, la table était cachée dans le concepteur. Un clic droit et une sélection de la table ont suffit
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/03/2006, 14h15
  2. []récupérer les informations de idtag d'un mp3
    Par mierkool dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/01/2006, 11h36
  3. Récupérer les informations d'un autre site
    Par deelyth dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 02/01/2006, 09h44
  4. Réponses: 5
    Dernier message: 23/12/2005, 19h19
  5. [IdHTTP] Récupérer les informations provenant d'une serveur
    Par newbie57 dans le forum Web & réseau
    Réponses: 3
    Dernier message: 24/11/2005, 12h33

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