Développement d’APIs avec NodeJS

  • Filière :

    Développement logiciel

  • Sous-filière :

    Technos Web (PHP, JS...)

  • Référence

    API-NJS

  • Durée

    4 jours (28 h)

  • Prix par personne HT

    3 150 € HT

Description

Au-delà de vous faire découvrir l’écosystème NodeJS, cette formation vous propose une approche structurée pour développer des applications maintenables, fiables, performantes, sécurisées et testables.
Vous découvrirez les bases solides, les outils adaptés, et les bonnes pratiques (architecture, tests, sécurité, qualité). Le tout, alternant théorie et exercices concrets, pour vous rendre rapidement autonome.
À la fin, vous aurez en main une vraie boîte à outils pour développer des APIs NodeJS — de la conception jusqu’au déploiement.

Objectifs pédagogiques

  • Apprendre à concevoir et développer des applications NodeJS maintenables, fiables, sécurisées et performantes
  • Découvrir les pratiques JavaScript et NodeJS les mieux éprouvées
  • Apprendre à tester vos applications NodeJS
  • Apprendre à utiliser le framework web ExpressJS
  • Penser et développer de façon asynchrone.

Public cible

  • Développeurs
  • Architectes

Pré-requis

  • Connaissances en développement Web : JavaScript / HTTP
  • Être curieux des technologies Web

Modalités d'évaluation

L’évaluation des acquis se fait tout au long de la session au travers d’ateliers de mise en pratique des notions et concepts abordés pendant la formation.

Programme de la formation

JavaScript

  • L’histoire de JavaScript
  • Introduction au langage, ses propriétés et ses spécificités
  • Intérêts de l’utilisation du JavaScript
  • Exercice : Prise en main et familiarisation avec le langage

JavaScript Moderne

  • Nouveautés ECMAScript 2015 et +
  • Exercice : Amélioration du code existant avec les nouveautés ECMAScript
  • Importance du principe d’immutabilité et techniques associées
  • Exercice : Application du principe d’immutabilité
  • Bonnes pratiques

Développement Asynchrone & Event Loop

  • Développement asynchrone
  • Fonctionnement Event Loop
  • Microtasks vs Macrotasks
  • Callback hell vs Promise vs async / await
  • Les “closures”
  • Exercice : Implémentation asynchrone

TypeScript

  • Pourquoi TypeScript ?
  • De l’ECMAScript à TypeScript
  • Inférence de type
  • Duck Typing
  • Exercice : Migration progressive vers TypeScript

NodeJS

  • Pourquoi NodeJS ?
  • Modules
  • Global objects
  • Exercice : Utilisation de modules natifs NodeJS
  • Events & Listeners
  • Timers
  • Debug
  • Profiling : analyse des performances
  • Node Package Manager

Développement d’API avec Fastify

  • ExpressJS vs. Fastify
  • Routing
  • Middlewares
  • Exercice : Implémentation d’une API ReSTful ou “Resource Oriented”
  • Authentification et autorisation
  • Exercice : Mise en place de l’authentification et de l’autorisation

OpenAPI & “Spec First”

  • OpenAPI & outils associés
  • Exercice : Implémentation d’une API avec OpenAPI et une approche “Spec First”

Testing

  • Stratégies de testing & outils
  • Vitest
  • Exercice : Implémentation de Narrow tests
  • Exercice : Implémentation de Wide tests

Bases de données

  • SQL & NoSQL
  • Prisma
  • Exercice : Utilisation de MongoDB comme base de données

Bonus

  • Organisation du workspace avec Nx
  • Introduction à NestJS
  • Déploiement serverless

Programme mis à jour le