La bibliothèque QxOrm 1.4.6 et l'application QxEntityEditor 1.2.4 viennent de sortir : 2 nouveaux modules disponibles, un serveur web HTTP 1.1 (module QxHttpServer) et une API JSON (module QxRestApi) !
Modifications apportées à la bibliothèque QxOrm 1.4.6 :
- Nouveau module QxHttpServer : serveur web compatible HTTP 1.1 autonome (aucune nécessité d'installer une application tierce comme Apache ou Nginx), performant (multi-thread) et simple d'utilisation ;
- Nouveau module QxRestApi : API JSON pour gérer (de façon générique) la couche de données persistantes (base de données) ou appeler des fonctions natives C++ (enregistrées dans le contexte QxOrm) ;
- Avec les nouveaux modules QxHttpServer et QxRestApi, la bibliothèque QxOrm peut à présent être utilisée pour développer des applications web (par exemple des Single-Page-Application SPA avec des frameworks Javascript comme AngularJS, React, Meteor.js, etc...) ;
- Nouveau projet d'exemple nommé qxBlogRestApi : application QML avec une liste de requêtes JSON pour montrer comment requêter le module QxRestApi depuis un moteur Javascript + serveur web HTTP pour montrer comment créer des applications web avec le module QxHttpServer ;
- Le module QxRestApi supporte : toutes les opérations de type CRUD sur la base de données, des requêtes SQL complexes, plusieurs niveaux de relations, personnalisation du format de sortie JSON, appel aux fonctions natives C++, validation d'instance, appel personnalisé à la base de données ou procédure stockée ;
- Amélioration du moteur de sérialisation JSON : possibilité de définir un filtre personnalisé sur les propriétés exportées ;
- Possibilité de définir des alias SQL personnalisés pour les requêtes complexes avec relations en utilisant la syntaxe <my_table_alias> ;
- Amélioration des requêtes SQL générées pour les bases Oracle : gestion des identifiants générés avec la syntaxe RETURNING INTO (merci à Romain Macureau et Abdennour Boutrig) ;
- Corrige un problème avec les procédures stockées et les paramètres de sortie ;
- Nouvelle fonction disponible : qx::dao::count_with_relation<T>() ;
- Corrige un problème de sérialisation JSON en environnement multi-thread ;
- Modification du format JSON avec les types QDateTime et QTime : utilisation de Qt::ISODateWithMs à la place de Qt::ISODate (avec Qt 5.8 ou +) ;
- Amélioration du module QxService : support des connexions sécurisées SSL/TLS + connexions persistantes (keep-alive) ;
- Suppression des fichiers *.suo du package QxOrm (fichiers temporaires MSVC++).
Modifications apportées à l'application QxEntityEditor 1.2.4 :
- Nouvelle fonctionnalité dans le moteur JavaScript pour personnaliser les exports : possibilité d'appeler le module QxRestApi pour requêter les projets *.qxee ;
- Corrige un problème d'ordre des propriétés et relations générées pour les exports C++ après import d'un schéma de base de données (qui pouvait être gênant pour rechercher des différences entre 2 exports) ;
- Corrige un crash qui pouvait se produire à l'ajout d'une entité dans un schéma existant.
Vous pouvez télécharger ces nouvelles versions sur le site internet de QxOrm et QxEntityEditor.
La bibliothèque QxOrm est également disponible sur GitHub.