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

Lazarus Pascal Discussion :

Appels aux web services sous Lazarus [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut Appels aux web services sous Lazarus
    Bonjour,

    J'utilise Lazarus 2.08 sur une Debian 10.3
    Je porte des projets écrits en Delphi 2007 ou Kylix sous cet environnement.
    Tout se passe bien, les résultats sont très satisfaisant mais il me reste un point précis à régler : les appels au web services.
    J'ai essayé d'utiliser Web service Toolkit fourni par le gestionnaire de paquets en ligne :

    L'importateur permet bien de générer les deux fichiers d'interface
    Mais ensuite j'ai pas mal de problèmes à la compilation : unités manquantes : base_service_intf ... résolues en installant le source de wst.

    Exemples non fonctionnels et non compilables : amazon_samples

    Est ce que ce paquet est toujours maintenu ?
    Existe-t-il des exemples simples d'utilisation de ce package ?
    Existe-t-il d'autres packages gérant les appels aux web services /

    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Bonjour, je viens d'installer ces paquets et lu la doc de ce WST histoire de voir un peu. La dernière version est la 0.8 et semble continuer à être mise à jour au compte goutte par des bénévoles du côté anglais.

    J'ai téléchargé les exemples fournis dans le zip de la version 0.7 depuis le site officiel.

    Arf, c'est une vraie prise de tête ces exemples et tests, il manque presque toutes les dépendances dans les projets, pour que les unité des uses soient trouvées.
    Bref un clique droit sur "paquet requis" de l'explorateur de projet et hop faut tout ajouter Synapse, Indy, wst...

    Malheureusement je ne suis pas enregistré auprès d'Amazon, je n'ai pas et je ne peux pas générer les fichiers WST requis (et je n'en ai pas non plus).

    Sinon il y a le paquet Rest Dataware, mais je ne sais pas si cela te conviendra.
    L'autre solution serait de jouer avec les paquets de base fournis par FPC : fpWeb et JSON qui te permettront d’implémenter un système "Rest-ful JSON-API".

    A+

    Bonne continuation
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut
    Merci pour ta réponse.
    Effectivement c'est bien le fouillis dans ce paquet !
    J'arrive à compiler en récupérant sur le OnlineManager les paquets manquant et à compiler.
    Mais les appels aux fonctions du webservice plantent systématiquement ...
    C'était pourtant si simple sous Delphi ou Kylix.

    Bon, il va falloir mettre les mains dans le cambouis ...

    Merci encore, et en cas de succès (?) je ne manquerai pas de dire le pourquoi du problème ...

  4. #4
    Membre Expert
    Avatar de BeanzMaster
    Homme Profil pro
    Amateur Passionné
    Inscrit en
    Septembre 2015
    Messages
    1 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur Passionné
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Septembre 2015
    Messages : 1 899
    Billets dans le blog
    2
    Par défaut
    Hello,
    Je pense que cette bibliothèque fonctionne, mais les exemples sont à refaire Faudrait déja juste tester avec les exemples de client/serveur pour vérifier que tout fonctionne bien

    Avec OPM lorsque tu télécharges et installes un paquet celui-ci peux directement télécharger et installer les dépendances manquante. Il te poses la question si il t'en manque une

    Quel genre d'API web (hors amazon) souhaites tu implémenter ?

    Si jamais un petit tuto pour créer une API Rest

    Ensuite il existe d'autres bibliothèques (plus usine à gaz ) comme mORMot ou Brook Framework
    Autres exemples :
    un petit portage depuis Delphi Rest-API
    et un autre de notre vieil ami JurassikPork tu trouveras d'autres liens intéressant dans ce fil de discussion.
    Et enfin un petit PDF de Michaël Van Canneyt sur les API Google

    A+
    • "L'Homme devrait mettre autant d'ardeur à simplifier sa vie qu'il met à la compliquer" - Henri Bergson
    • "Bien des livres auraient été plus clairs s'ils n'avaient pas voulu être si clairs" - Emmanuel Kant
    • "La simplicité est la sophistication suprême" - Léonard De Vinci
    • "Ce qui est facile à comprendre ou à faire pour toi, ne l'est pas forcément pour l'autre." - Mon pèrei

    Mes projets sur Github - Blog - Site DVP

  5. #5
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 18
    Par défaut
    Hello,

    Ça fonctionne maintenant !
    En fait, et comme souvent il faut bien relire la doc, et, dans les exemples donnés prendre le temps de bien en comprendre la logique.
    Si je reprends dans l'ordre, il faut :
    - installer les paquets WST et ses dépendances Indy10, Synapse 40.1 avec le gestionnaire de paquets en ligne.
    - ne pas oublier d'ajouter les chemins des sources des paquets en question dans le dépot local : root/.lazarus ... si on est en root
    Et là tout se compile bien après avoir généré les fichiers d'interface du web servive auquel on veut se connecter.

    Ensuite, normal, ça ne fonctionne pas ...

    Ce qui me manquait, c'était d'initialiser le transport :
    - dans les unités rajouter soit : fpc_http_protocol ou synapse_http_protocol ou indy_http_protocol : les trois fonctionnent bien
    - initialiser le transport dans le create du programme client du service web par exemple FPC_RegisterHttp_Transport() ou avec indy ou synapse.

    Et là, mon client web peut appeler et recevoir les réponses du web service.
    Je suppose que l'on ne doit pas avoir de problème pour créer le serveur web, mais je n'en ai pas besoin.

    Mais comme on est jamais content, il me reste un souci : c'est ok en http mais ça coince en https. Je ne sais encore pourquoi ...


    Encore merci pour ton aide

  6. #6
    Membre expérimenté
    Profil pro
    au repos
    Inscrit en
    Février 2013
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : Saint-Pierre-Et-Miq.

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : Février 2013
    Messages : 161
    Par défaut
    Salut,
    en fait pour utiliser WST on est pas obligé d'utiliser indy ou synapse , il suffit de ne pas les inclure quand on installe le paquet :

    Nom : WST_OPM.PNG
Affichages : 420
Taille : 22,9 Ko


    Ensuite il faut mettre dans son projet les dépendances aux paquets wst :

    Nom : WST_exemple.PNG
Affichages : 405
Taille : 13,7 Ko

    Voici un exemple d'utilisation d'un web service gratuitement accessible à partir d'internet qui fait des opérations arithmétiques :
    voir ici : http://www.dneonline.com/calculator.asmx
    en pièce jointe le wsdl.
    - Créer un projet Application
    - Ajouter les paquets wst nécessaires dans les dépendances.
    - Importer le wsdl par le menu de WST de l'IDE.

    Et voici un code qui va faire appel au webservice pour faire une division :
    Code : 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
    // ...
    uses fphttpclient,fpc_http_protocol, calculator, calculator_proxy;
    //...
    procedure TForm1.Bt_Test_WSTClick(Sender: TObject);
    var locService : CalculatorSoap;
        paramdiv : Divide_type;
        resultat : integer;
    begin
      FPC_RegisterHTTP_Transport();
      paramdiv := Divide_type.Create;
      paramdiv.intA := 35;
      paramdiv.intB := 5;
      locService := wst_CreateInstance_CalculatorSoap();
      resultat := locService.Divide(paramdiv).DivideResult;
      ShowMessage(InttoStr(resultat));
    end;
    Et voilà !

    Nullosse
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/04/2018, 17h45
  2. Appeler un web service avec pl/sql
    Par squalito dans le forum PL/SQL
    Réponses: 5
    Dernier message: 17/09/2012, 15h21
  3. [Web Services] Appel de Web Service (pb avec authentification)
    Par cicolas dans le forum Spring
    Réponses: 4
    Dernier message: 04/07/2006, 10h20
  4. [Débutant] Appeler un Web Service
    Par slyer dans le forum Services Web
    Réponses: 2
    Dernier message: 17/02/2006, 18h15

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