Généralisée par les applications mobiles sous iOS et Android, l'exécution asynchrone de traitements devient incontournable également pour les applications du bureau : la fluidité des applications est primordiale, plus personne ne veut attendre devant un sablier !


Les threads et tâches parallèles facilitent depuis longtemps l'exécution d'un traitement en arrière-plan. Le développeur peut ainsi exécuter un traitement métier, interroger un serveur (…) sans bloquer l'application, et mettre à jour l'UI à posteriori (DemandeMiseAJourUI, ExécuteThreadPrincipal...) .


L'utilisation d'API REST étant de plus en plus courante, l'exécution de requêtes REST asynchrones a été ajoutée à WINDEV 26. L'écriture du code est donc toujours plus rapide, tout en apportant une meilleure expérience aux utilisateurs.

 

Comment profiter de cette nouveauté ?

 

L'appel va rester identique avec la préparation d'une variable restRequête, puis l'appel de la fonction RESTEnvoie. Mais, la fonction prendra en paramètre supplémentaire un nom de procédure :

 

AppelServeur est un RestRequête // ou httpRequete
AppelServeur..URL = "http://gb/apropos"
RestEnvoie(AppelServeur, MaProcédureRéponse) // Ou HTTPEnvoie
ToastAffiche("Appel API fait l'appli reprend la main...")

 

 

La procédure peut être quelconque, procédure d'une collection de procédures, de la fenêtre, procédure interne "Callback" du traitement qui lance l'appel du webservice.

 

C'est cette procédure qui sera automatiquement appelée lorsque la réponse du webservice sera reçue. Durant l'attente de la réponse, l'application est fonctionnelle l'utilisateur n'est pas en attente.

 

Cette possibilité est également proposée pour les webservices SOAP importés dans les projets.

 

Ce thème a également été abordé dans la #keynote3 du WINDEV Tour on-line des versions 26.

 

< Retour

3 commentaires

HERVE FRANCO
03/06/2021 - 10:04 - Répondre
Bonjour, attention l'article mentionne des types restenvoi et restrequete mais le code httpenvoi et httprequete, bien que ce soit quasiment la meme chose :)

Guillaume Bayle
10/06/2021 - 12:50 - Répondre
Merci pour votre retour, c'est rectifié ! Effectivement les deux fonctions sont identiques. Bons développements !

Rui Filipe Rebelo Prego
08/06/2022 - 10:44 - Répondre
Il semblerait que les appels asynchrone à partir d'un site webdev 26 ne sont pas autorisés, juste en windev 26 ? RESTEnvoie(MaRequeteRest,RestCBack) Erreur :Cette syntaxe de la fonction 'RESTEnvoie' n'est pas disponible pour la cible 'WEBDEV'. Vous pouvez gérer le cas grâce à une condition de compilation () ou une cible d'exécution (). Est-ce exact ? merci

Publier un commentaire : 
Votre adresse email ne sera pas publiée