Nuxt.JS – Pourquoi préférer utiliser Vue.js via Nuxt.js

“Pourquoi utiliser un framework (Nuxt.js) pour utiliser un framework (Vue.js) ?” Je tenterai de répondre à cette question en vous en posant une autre puis en argumentant: Pourquoi Nuxt.js devient indispensable dans le cadre d’un projet développé en Vue.js ? Cet article suppose que vous possédiez déjà des notions en SPA (Single Page Application) et plus spécifiquement en Vue.js. Qu’est ce que Nuxt.js? Tandis que Vue.js et Vue CLI facilitent déjà beaucoup la configuration d’un projet et le développement d’application web au travers de son approche progressive, Nuxt.js ajoute à cela une logique puissante d’abstraction et de rendu côté serveur. Nuxt.js est un framework qui permet de créer des applications universelles. Une application universelle se différencie des applications web classiques …

Exposer les logs de manière sécurisée avec Spring Boot

Cet article décrit de manière concise la mise en oeuvre et la configuration d’outils permettant l’exploitation en production des fichiers de logs. Pour une explication détaillée de ces composants et leur utilisation, merci de vous référer aux documentations en bas de cet article. Spring Boot offre un panel d’outils très intéressants pour la mise en production et le suivi applicatif. Ce qui nous intéresse ici plus particulièrement c’est la gestion des logs et la manière de pouvoir les consulter facilement et de manière sécurisée depuis un appel HTTP. Pour cela nous allons nous aider de deux composants: Le framework de logging LogBack pour la gestion des logs de sortie L’outil de monitoring et de management Actuator LogBack Initialisation LogBack est …

Enquête : la Blockchain et vous

Dans l’objectif de mieux appréhender le niveau de pénétration et de compréhension de la technologie Blockchain, nous vous proposons de répondre à une courte enquête. Lien de l’enquête : https://goo.gl/forms/1JWrqCCTWNKBaYCg1 Les résultats seront par la suite publiés sur ce blog et sur notre page LinkedIn. Nous vous remercions d’avance pour votre contribution !

Eviter le “fail-fast” de Promise.All()

Avec l’arrivée d’ES6 il est maintenant possible d’exécuter en parallèle plusieurs tâches très facilement sans avoir à utiliser de composant tierce comme Q. L’avantage de cette méthode est de pouvoir optimiser les temps de traitement sur une page, attention cependant à ne pas en abuser ou vous risqueriez de compromettre votre navigateur. Cette méthode s’avère cependant intéressante si vous avez une dizaine d’actions à effectuer en même temps, mais si vous commencez à traiter un millier de demandes, je ne donne pas cher de votre navigateur qui “freezera” certainement… Mieux vaut dans ce cas chaîner les actions afin d’éviter cela, même si cela doit engendrer des traitements plus longs. Dans le cas qui nous concerne, ES6 propose la méthode Promise.All(). …

Spring Boot / Angular – Comment gérer les URL HTML 5 ?

Dans le cas d’une utilisation sans le hash dans les chemins Angular, vous allez être confronté à un problème de compréhension des URL par les contrôleurs de Spring Boot et celui-ci risque de vous répondre avec la page d’erreur standard : Spring ne doit donc répondre qu’aux demandes dédiées aux API REST. Pour cela, il suffit de mettre en place un contrôleur (et non un contrôleur REST) retournant les demandes à Angular. Le prefixe forward utilisé ici retourne exactement la même requête à l’URL cible, ne changeant pas l’historique des URL du navigateur, ce qui évite un refresh de la page. Autre élément important, l’expression régulière utilisée pour filtrer les appels. RequestMapping utilise la notion de PathMatcher. Sur le blog …

AWS API Gateway

Les architectures basées sur les microservices sont l’avenir des applications complexes. Dans ce blog, nous allons nous intéresser à l’un des composants critiques de cette architecture: L’API Gateway (Passerelle API). Disons que vous essayez de créer un magasin en ligne (web-store). Vous utiliserez probablement plusieurs API pour fournir les actifs et les données nécessaires à la création de chaque page de produits. Les microservices que vous pouvez déployer peuvent inclure : services d’information sur le produit, services de tarification, services de commande, services d’inventaire, etc. En plus de tous ces services, vous devrez déployer plusieurs versions de ces services pour interagir avec les clients qui communiquent à partir de plates-formes mobiles, de bureau et de navigateurs Web différents. Comment le …

Afficher des SVG via un composant React

Avec les avancées du développement Web, l’affichage d’icônes dans une application est passée d’une image de type GIF, JPEG ou PNG à l’utilisation de composants vectoriels, ou communément appelés SVG (Scalable Vector Graphics). Le maintien d’icônes de type SVG dans une page web peut vite devenir assez fastidieuse (l’écriture XML étant assez verbeuse), surtout si vous disposez d’icônes redondantes utilisées un peu partout dans votre application. Heureusement, il existe des solutions pour centraliser le code. Dans le cas d’une application développée sous React, il suffit de passer par la création d’un composant dédié qui s’appuierait sur un objet littéral contenant la définition de nos icônes. Pour nous aider dans la conception de notre composant, il faut revenir sur la structure …

Centraliser les messages d’erreur sous React avec Redux

Le but de cet article est de vous proposer une solution permettant de centraliser vos messages d’erreur émis par vos réponses HTTP depuis un composant React intégrant par exemple l’affichage d’une modal. Dans la version 16 de React, la notion d’Error Boundary a été introduite permettant d’intercepter les messages d’erreur JavaScript au niveau du composant React, via la méthode componentDidCatch(error, info). Cependant, cette détection d’erreur n’intervient que lors du rendu du composant. Ainsi, comment faire pour intercepter et gérer de la même manière un message provenant d’une réponse de notre BackEnd ? Cet article part de l’idée que vous avez déjà quelques notions d’utilisation de React et que vous partez d’un projet existant. Cependant, si vous débutez je vous invite …