Formation API REST en NodeJS avec FeathersJS

Cette formation a pour objectif de vous apprendre à créer une API REST isomorphique et temps réel à l'aide du framework FeathersJS, version 5 'Dove'.

À travers l'écriture d'une API de catalogue de films, vous découvrirez par la pratique les principes fondamentaux du framework FeathersJS :

  • gestion de l'authentification

  • approche service

  • gestion du temps réel

  • filtrage des données par les validators, resolvers

  • factorisation de traitement par les hooks

Le framework FeathersJS présente de nombreux avantages grâce à un ensemble de modules préexistants, rendant plus facile et rapide la création d'API.

Il présente également une architecture intégrant une vérification de la donnée à l'entrée et à la sortie de l'API, permettant de garantir une meilleure sécurité sur le traitement des données. (validators, resolvers)

Objectifs pédagogiques

  • Installer et configurer un serveur Node.js

  • Instancier une API REST avec le framework FeathersJS

  • Connaître les différents principes du framework FeathersJS

  • Interagir avec une base de données relationnelle

  • Construire une bibliothèque typée (TypeScript) pour usage côté front-end

  • Interagir en temps réel avec de la donnée

  • Mettre en place des permissions d'accès aux services FeathersJS

Formation API REST en NodeJS avec FeathersJS en détail

Programme

1. Découverte d’un API FeathersJS

 

NodeJS / FeathersJS

  • rappels NodeJS
  • principes clés de FeathersJS
  • comparaison FeathersJS / Express / Koa / Fastify

CLI

  • découverte de la CLI

  • création d'une première API

  • création d'un premier service basé en mémoire

  • analyse de l'architecture API

Concepts

  • gestion de la qualité de la donnée à travers les services (schéma avec TypeBox / resolvers / validators)

  • gestion des hooks

  • compréhension des resolvers / validators / hooks (qui fait quoi)

  • custom methods des services

Base de données

  • création d'un service avec l'adapter feathers-knex

  • création des migrations (up / down)

  • peupler les données avec un script NodeJS qui lira un fichier CSV

2. Authentification : gérer une authent sur les endpoints de modification des données

  • authentification locale avec JWT
  • authentification avec OIDC
  • gestion d'un compte utilisateur avec feathers-auth-management

Isomorphisme : utiliser les types de données à la fois côté backend et frontend

  • génération du bundle client

  • utilisation du bundle dans une app front de consultation de la donnée

Temps réel : mettre en oeuvre la communication temps réel sur l'API web socket

  • rappel sur les web socket

  • mise en place de channels dédiés

  • mise en application dans l'application front (modification de données)

3. Aspects avancés

  • Contrôle d'accès et sécurité (feathers-casl)

  • Tests unitaires (vitest)

  • Swagger (feathers-swagger)

  • Gestion des erreurs / logs

  • Déploiement

  • Upload de fichiers

Public et pré-requis

Public

  • Développeurs, architectes techniques et chefs de projet Web

Pré-requis

  • Bonnes connaissances du JavaScript / TypeScript (la formation sera faite en TypeScript)

  • Connaissance NodeJS, npm

Personne en situation de handicap

Pour toutes questions relatives à l’accueil d’un participant présentant un handicap, merci de nous contacter préalablement avant toute inscription

Ingénierie pédagogique

Moyens pédagogiques et techniques

  • Les supports de cours (slides) seront disponibles en ligne et distribués en début de formation (à l'aide d'un lien vers notre outil interne ou d'une version numérisée), puis fournis au format électronique à la fin de la formation.
  • Une salle de formation équipée d'une connexion Internet, d'un vidéoprojecteur, paperboard. Ou une salle virtuelle pour les formations à distance (FOAD).
  • Un ordinateur par stagiaire avec un système d'exploitation installé et les outils nécessaires.

Modalités de suivi de l'exécution du programme

  • Durant la formation: alternance d'apports théoriques (30% du cours), d’exercices pratiques et de mise en situation sous forme de travaux pratiques corrigés avec l’expert-formateur.
  • En fin de formation: évaluation à chaud sur l'atteinte des objectifs pédagogiques sous forme de tour de table et de test de connaissances, d'exercices, de QCM.

Moyens d'encadrement

Formation assurée par un expert-formateur en développement ayant une expérience significative avec le framework NodeJS.

Nos experts

Mathieu Dartigues

Mathieu Dartigues

Artisan-formateur du web JS-TS-VueJS-NodeJS


Nantes