10. Serveurs web¶
Les chapitres consacrés au réseau ont connecté la caméra au réseau et lui ont donné des sockets pour communiquer (Réseau). Et maintenant ? La plupart des applications de caméra se résument à deux choses – exposer au monde ce que voit la caméra et réagir à ce que disent les autres équipements du réseau. HTTP est la manière dont cette conversation a lieu, et elle fonctionne dans les deux sens :
En tant que serveur, la caméra répond aux requêtes des téléphones, des navigateurs et des autres appareils du réseau. Le framework
microdotest le serveur de la caméra.En tant que client, la caméra contacte des services cloud pour téléverser, récupérer ou coordonner. Le module
requestsest le client de la caméra.
Au fil des 14 chapitres suivants, nous allons construire une seule application de caméra fonctionnelle qui exerce les deux rôles.
Une caméra de détection de mouvement de jardin est installée sur un poteau dans la cour, observe ce qui se passe et avertit le propriétaire de tout ce qui est intéressant. Nous ferons évoluer la caméra d’un serveur « je suis vivant » à une seule route vers un produit livrable : aperçu en direct sur le téléphone du propriétaire, un tableau de bord avec un curseur de seuil et un journal d’événements, des notifications push lorsqu’un mouvement se déclenche, l’authentification, HTTPS et une archive cloud de chaque trame déclenchée.
Chaque chapitre ajoute une seule fonctionnalité. Les exemples de code supposent que les chapitres précédents sont en place – nous ne recollons pas l’intégralité du script à chaque fois.
- 10.1. Votre premier point de terminaison
- 10.2. Renvoyer une capture
- 10.3. Diffusion en direct – un seul spectateur
- 10.4. Partager une seule boucle de capture entre les spectateurs
- 10.5. Une API de contrôle pour la caméra
- 10.6. Construire le tableau de bord
- 10.7. Émettre des événements vers le tableau de bord
- 10.8. Contrôle bidirectionnel avec les WebSockets
- 10.9. Authentification pour les clients programmatiques
- 10.10. Connexion au tableau de bord
- 10.11. HTTPS – chiffrement du transport pour le serveur
- 10.12. CORS et CSRF
- 10.13. Téléverser vers le cloud les trames déclenchées
- 10.14. Conclusion