La formation en détail
Objectifs
Mercure est un protocole permettant de transmettre en temps réel des mises à jour de données vers les navigateurs web (ou autres clients HTTP) de manière fiable, rapide et économe en énergie. Mercure est utile pour publier des mises à jour en temps réel des ressources exposées via des API Web.
Programme
Présentation du protocole
Cas d’usage
- Disponibilité en direct
- Emplois asynchrones
- Montage collaboratif
Différences et similarités entre Mercure et les protocoles existants - Avec Server-Sent Events
- Avec Websocket
- Avec Websub
- Avec Web Push
Présentation de HTTP/2 et de son utilisation par Mercure
Présentation de HTTP/3 et de son utilisation par Mercure
Le hub
- Installation classique
- Installation avec Docker
- Installation avec Kubernetes
- Le support automatique des protocoles HTTP/2 et HTTPS (via Let’s Encrypt)
- Configuration
- Implémentation alternative (Hub Node.js)
Côté client
- JavaScript : la classe EventSource
- Considérations relatives aux cookies cross-domains
- Configurer les CORS
- Polyfill pour les vieux navigateurs
Autorisation
- Présentation du mécanisme d’autorisation de Mercure
- Présentation du format de tokens JWT
- Les targets
- Droits de publication
- Droits d’abonnement
- Autorisation via cookies
- Autorisation via en-tête HTTP
Mercure et les API
- Rappels sur REST, HATEOAS et l’hypermédia
- Présentation du mécanisme d’auto-découvrabilité de Mercure via Web Linking
- Utiliser Mercure pour les subscriptions GraphQL
Intégration de Mercure avec les principaux frameworks et langages
- Exemple avec API Platform et Symfony (PHP, via Hub)
- Exemple avec Node.js (via Hub)
- Utilisation sans hub avec Go
- Utilisation sans hub avec Node.js
Le chiffrement de bout en bout
Pré-requis
Intermédiaire