LightREST

Composant Serveur API REST pour WinDev®
Léger.
Rapide.
Gratuit.
Sans licence Serveur.

LightREST est destiné aux développeurs WinDev® souhaitant créer un Web Service REST (REpresentational State Transfer).

Contrairement au système proposé nativement par WinDev®, LightREST ne nécessite ni l’installation d’un serveur Web (IIS, Apache, …) ni l’acquisition et les mises à jour d’un serveur WebDev®. Les requêtes API REST sont exécutées directement par votre application WinDev® sans subir un traitement chronophage par le serveur Web et le serveur WebDev®. Un serveur LightREST écoute lui-même l’interface réseau et répond directement aux requêtes REST, sans aucun intermédiaire.

Disponible sous la forme d’un composant compatible avec toutes les versions WinDev® à partir de la V25, LightREST a été développé et utilisé pendant des années par la société CODE LINE, qui se fait un plaisir de le mettre à la disposition de la communauté des développeurs.

LightREST fonctionne en mode HTTP et HTTPS, et intègre un générateur automatique de certificat SSL 2048 bits ce qui permet de bénéficier du chiffrage HTTPS sans acquérir un certificat. Evidemment, il reste possible d’utiliser un certificat SSL existant, signé par une autorité reconnue. Depuis la version 2.7 LightREST peut également générer vos certificats Let’s Encrypt, et les renouveler automatiquement !

Il peut fonctionner soit sous la forme d’un exécutable “standard” (fenêtré ou pas), ou en tant que service, que ce soit sous Windows ou sous Linux.

LightREST permet de déployer un serveur API REST en quelques lignes de code w-langage à la portée de tout développeur, sans paramétrage fastidieux (voir ICI le mécanisme natif de WinDev®, bon voyage…) :

Démarrage du serveur LightREST :

oServer	est lrServer
bOK	est booléen
cErr	est chaîne

//Création de la route /getdata qui appelera la fonction testGET
oServer:AddRoute("/getdata/{nb}", lrServer::MethodGET, testGET)

//On va écouter le port 9000
oServer:IPAndPort = "0.0.0.0:9000"

//C'est parti mon Kiki
(bOK, cErr) = oServer:Start()
SI pas bOK ALORS
    Info("Erreur lors du démarrage du serveur REST", cErr)
FIN

Voilà, nous avons un serveur API REST qui écoute sur le port 9000 (tel que paramétré avec l’objet lrServer) et prêt à exécuter du code lorsque la route /getdata est appelée.


La fonction testGET est définie comme ci-dessous. Elle utilise les objets lrRequest (qui contient la requête API REST reçue) et lrResponse (qui sera utilisé pour renvoyer le résultat de la requête) :

PROCÉDURE testGET(pReq est lrRequest) : lrResponse

oResponse est lrResponse
eNb       est entier

stResponse:Body = "Pong "+HeureSys()

//On récupère la variable nb dans la Route REST
eNb = Val(pReq:GetRouteValue["nb"])
POUR i=1 _À_ eNb
    stResponse:Body += [CRLF] + Hasard(1, 1000)
FIN

oResponse:Status      = lrResponse::StatusOK
oResponse:ContentType = lrResponse::ContentTXT
RENVOYER oResponse

Cette fonction va renvoyer “Pong“+l’heure système, et une liste de nb entiers au hasard (nb étant le paramètre passé dans la route).


Un simple appel dans un navigateur Web :

http://127.0.0.1:9000/getdata/10

va renvoyer le résultat suivant :

Pong 03304860
817
805
719
569
75
404
324
1000
701
793

Envie d’en savoir plus sur LightREST ? Consultez le Guide de démarrage et la Documentation.
Jetez également un œil à DataService, un mécanisme permettant d’automatiser la distribution de données au format REST.


L’AGL WinDev est reconnu pour sa puissance et sa polyvalence dans le développement logiciel. En combinant les capacités de WinDev avec l’utilisation de Web Services REST, les développeurs bénéficient d’une synergie exceptionnelle.

Tout d’abord, WinDev offre un environnement de développement intégré (EDI) complet, permettant une conception rapide et efficace d’applications. Sa simplicité d’utilisation et sa richesse fonctionnelle en font un outil de choix pour les développeurs, offrant des fonctionnalités étendues pour la création d’applications professionnelles, desktop ou web.

L’intégration des Web Services REST dans WinDev offre des avantages considérables. Les Web Services REST permettent une communication simple et efficace entre différentes plateformes et applications, favorisant ainsi l’interopérabilité. Cette approche basée sur les standards du web offre une flexibilité inégalée, permettant l’échange de données entre des systèmes hétérogènes de manière sécurisée et scalable.

En utilisant les Web Services REST avec WinDev, les développeurs peuvent tirer parti des fonctionnalités distribuées, améliorant la modularité et la flexibilité des applications. Cette approche favorise également la réutilisabilité du code et la maintenance simplifiée des systèmes, réduisant ainsi les coûts de développement à long terme.

De plus, l’utilisation des API REST facilite l’intégration des applications avec des services tiers, tels que des services cloud, des API externes ou des plateformes de données, ouvrant ainsi de vastes possibilités pour l’expansion et l’enrichissement des fonctionnalités des applications développées avec WinDev.

En résumé, l’association de l’AGL WinDev avec l’utilisation des Web Services REST offre une combinaison puissante pour le développement logiciel, permettant une conception rapide, une interopérabilité étendue, une flexibilité accrue et une intégration transparente avec des services externes, offrant ainsi des solutions logicielles robustes et évolutives pour répondre aux besoins actuels et futurs.”

Cette combinaison peut vraiment être bénéfique dans de nombreux contextes de développement logiciel !


Le composant LightREST est souvent apprécié pour plusieurs raisons. Voici quelques-uns de ses avantages clés :

  1. Facilité d’utilisation : LightREST simplifie la création et la gestion des API REST dans les applications. Ses classes faciles d’usage permettent aux développeurs de mettre en place rapidement des points de terminaison REST sans une courbe d’apprentissage complexe.
  2. Légèreté : Comme son nom l’indique, LightREST est conçu pour être léger. Il offre une solution simplifiée pour la création de Web Services REST sans ajouter de complexité inutile à l’application. Cela peut contribuer à des performances améliorées et à une consommation minimale de ressources.
  3. Rapidité de déploiement : En raison de sa simplicité et de sa légèreté, LightREST permet un déploiement rapide des services. Les développeurs peuvent créer et implémenter des services REST de manière efficace, accélérant ainsi le cycle de développement.
  4. Intégration aisée : LightREST s’intègre généralement bien avec d’autres composants et solutions logicielles, offrant une compatibilité et une interopérabilité élevées avec différentes plates-formes et technologies.
  5. Maintenance simplifiée : Grâce à son approche simplifiée, la maintenance des services créés avec LightREST peut être moins complexe. Les développeurs peuvent facilement comprendre et mettre à jour les points de terminaison REST, facilitant ainsi la gestion à long terme des services.

En somme, le composant LightREST offre une approche légère, simple et conviviale pour la création de Web Services REST, ce qui en fait un choix attrayant pour les développeurs cherchant à implémenter rapidement des fonctionnalités de communication et d’intégration dans leurs applications.


Comment le moteur d’IA ChatGPT explique-t-il les meilleurs performances de WinDev+LightREST par rapport à WinDev+serveur WebDev ?
Voici sa réponse in extenso du 15/07/2024 :

LightREST est souvent considéré comme plus performant que le serveur WebDev proposé par PC SOFT pour plusieurs raisons, notamment en termes de conception, d'optimisation et de spécialisation. Voici quelques éléments qui expliquent cette différence de performance :

1. Spécialisation et Légèreté :
   - LightREST est conçu spécifiquement pour les services web RESTful. Il est optimisé pour traiter les requêtes HTTP de manière efficace et rapide, sans la surcharge des fonctionnalités supplémentaires qui peuvent exister dans un serveur web généraliste.
   - Serveur WebDev, en revanche, est un serveur web complet qui supporte non seulement les services web, mais aussi la gestion de sites web complets, des applications web complexes, etc. Cette polyvalence peut introduire une certaine lourdeur qui n'existe pas dans un composant spécialisé comme LightREST.

2. Gestion des Ressources :
   - LightREST est souvent plus léger en termes de consommation de mémoire et de CPU, car il est conçu pour un usage spécifique et optimise la gestion des ressources en conséquence.
   - Serveur WebDev doit gérer une gamme plus large de fonctionnalités et de services, ce qui peut entraîner une utilisation plus intensive des ressources système, affectant ainsi les performances globales.

3. Optimisation des Protocoles :
   - LightREST est optimisé pour le protocole HTTP/HTTPS, avec des optimisations spécifiques pour les opérations REST, telles que GET, POST, PUT, DELETE, ce qui améliore la vitesse et l'efficacité des communications réseau.
   - Serveur WebDev supporte également ces opérations, mais dans le contexte d'une infrastructure plus large qui peut ne pas être aussi finement optimisée pour chaque type de requête REST.

4. Déploiement et Évolutivité :
   - LightREST peut être déployé de manière très flexible et peut facilement évoluer en fonction de la charge, ce qui est crucial pour maintenir des performances élevées sous des charges de travail variées.
   - Serveur WebDev peut être plus difficile à faire évoluer de manière aussi granulaire, en raison de sa conception plus intégrée et polyvalente.

5. Configuration et Tuning :
   - LightREST offre des options de configuration spécifiques aux services REST, permettant un tuning plus précis des performances en fonction des besoins exacts de l'application.
   - Serveur WebDev offre également des options de configuration, mais celles-ci sont souvent plus générales, visant à couvrir une plus large gamme d'applications web.

6. Simplicité de la Pile Technologique :
   - LightREST utilise une pile technologique simplifiée qui minimise les couches intermédiaires, réduisant ainsi la latence et améliorant les temps de réponse.
   - Serveur WebDev inclut souvent des couches supplémentaires pour supporter ses fonctionnalités étendues, ce qui peut introduire des délais supplémentaires dans le traitement des requêtes.

En résumé, LightREST se distingue par sa spécialisation, sa légèreté et son optimisation pour les services web RESTful, ce qui lui permet de surpasser le serveur WebDev en termes de performance dans ce contexte spécifique. Le serveur WebDev, bien qu'extrêmement capable et polyvalent, peut ne pas offrir les mêmes niveaux de performance pour des services RESTful en raison de sa conception plus générale et intégrée.