10. Servidores Web¶
Os capítulos de rede ligaram a câmara à rede e dotaram-na de sockets para comunicar (Redes). E agora? A maioria das aplicações de câmara resume-se a duas coisas – expor o que a câmara vê ao mundo e reagir ao que outros dispositivos na rede dizem. O HTTP é como essa conversa acontece, e funciona em ambas as direções:
Como servidor, a câmara responde a pedidos de telemóveis, browsers e outros dispositivos na rede. A framework
microdoté o servidor da câmara.Como cliente, a câmara contacta serviços na nuvem para carregar, obter ou coordenar dados. O módulo
requestsé o cliente da câmara.
Ao longo dos próximos 14 capítulos, construiremos uma aplicação de câmara funcional que exercita ambos.
Uma câmara de deteção de movimento no quintal colocada num poste, que vê o que se passa e informa o proprietário sobre qualquer coisa interessante. Faremos a câmara evoluir de um servidor de uma única rota «estou ativo» para algo pronto a enviar: pré-visualização em direto no telemóvel do proprietário, um dashboard com um controlo deslizante de limiar e um registo de eventos, notificações push quando o movimento é detetado, início de sessão, HTTPS e um arquivo na nuvem de cada fotograma despoletado.
Cada capítulo acrescenta uma funcionalidade. Os exemplos de código assumem que os capítulos anteriores estão em vigor – não colamos o script completo de cada vez.
- 10.1. O seu primeiro endpoint
- 10.2. Devolver uma captura de imagem
- 10.3. Transmissão em direto – um único espetador
- 10.4. Partilhar um ciclo de captura entre vários espetadores
- 10.5. Uma API de controlo para a câmara
- 10.6. Construir o painel de controlo
- 10.7. Enviar eventos para o painel de controlo
- 10.8. Controlo bidirecional com WebSockets
- 10.9. Autenticação para clientes programáticos
- 10.10. Login no painel de controlo
- 10.11. HTTPS – encriptação de transporte para o servidor
- 10.12. CORS e CSRF
- 10.13. Carregar fotogramas despoletados para a nuvem
- 10.14. Conclusão