10. Servidores Web

Os capítulos de redes colocaram a câmera na rede e lhe deram sockets para se comunicar (Redes). E agora? A maioria das aplicações de câmera se resume a duas coisas – expor ao mundo o que a câmera vê e reagir ao que outras coisas na rede dizem. O HTTP é como essa conversa acontece, e funciona em ambas as direções:

  • Como servidor, a câmera responde a requisições de telefones, navegadores e outros dispositivos na rede. O framework microdot é o servidor da câmera.

  • Como cliente, a câmera busca serviços na nuvem para fazer upload, buscar ou coordenar. O módulo requests é o cliente da câmera.

Ao longo dos próximos 14 capítulos, construiremos uma aplicação de câmera em funcionamento que exercita ambos.

Uma câmera de quintal com gatilho de movimento fica em um poste no quintal, vê o que está acontecendo e avisa o proprietário sobre qualquer coisa interessante. Faremos a câmera crescer de um servidor de uma única rota “estou vivo” para algo entregável: prévia ao vivo no telefone do proprietário, um painel com um controle deslizante de limiar e um log de eventos, notificações push quando o movimento dispara, login, HTTPS e um arquivo na nuvem de cada quadro disparado.

Cada capítulo adiciona uma funcionalidade. Os exemplos de código pressupõem que os capítulos anteriores estão em vigor – não recolamos o script inteiro toda vez.

O telefone ou laptop conversa com a câmera por HTTPS para o painel, os eventos SSE e os comandos WebSocket; a câmera conversa para fora com um arquivo na nuvem por HTTPS POST.