Rullst AcademyRullst Academy/Lição
Aplicações com Rullst I · Lição 10 / 14

Conectar sem perder o contexto

A rede pode falhar antes ou depois de uma gravação.

Trilhas de aprendizado20 min

Vamos descobrir juntos

  1. 1

    web/app.js usa fetch para listar, criar e concluir. response.ok cobre status 200–299; fetch normalmente resolve a Promise mesmo para 422 ou 503. Uma resposta de erro precisa ser verificada, não confundida com sucesso por ter chegado.

  2. 2

    O formulário mantém o título quando não confirma a criação. Depois de uma resposta 201, pode limpá-lo: a criação foi confirmada, mesmo que a atualização posterior da lista falhe. Um indicador busy bloqueia duplo clique local; ele não impede duplicação por outro cliente ou por repetir a chamada depois.

  3. 3

    Se a conexão cair, talvez o servidor já tenha gravado e a resposta tenha se perdido. Por isso a mensagem orienta atualizar a lista antes de repetir POST. Não há retry automático para criação. Confira esse caso com uma falha controlada no laboratório, sem interferir em outros serviços.

  4. 4

    Os títulos são inseridos com textContent, não innerHTML. Escreva <em>Orbit</em>: ele deve aparecer literalmente, sem virar marcação. Segurança depende do contexto; textContent é adequado para texto de um nó, não uma regra universal para URLs, CSS ou qualquer destino.

Sua bancada de aplicações

O kit inclui o aplicativo completo para investigar e modificar. O trecho abaixo explica esta etapa; o editor contém o arquivo indicado. A Rullst Academy não compila nem executa esse servidor no navegador.

Arquivo para estudar e modificar

web/app.js

const response = await fetch("/api/missions");
if (!response.ok) throw Error("Request failed");
const items = await response.json();
text.textContent = item.title;

Extraia o kit numa pasta nova e abra o terminal junto a Cargo.toml. Use Rust 1.96+; o primeiro build pode baixar dependências e demorar. Depois abra http://127.0.0.1:3010. Pare com Ctrl+C e execute novamente após editar.

cargo test --locked
cargo run --locked
Meus arquivos e GitHub

Baixe seu rascunho e substitua o arquivo indicado na sua cópia extraída. O editor guarda um arquivo neste navegador; a conta guarda avaliações e XP. O ZIP não contém suas alterações. GitHub envia só o arquivo confirmado; para o aplicativo completo use Git manual, sem bancos, backups ou segredos.

Links oficiais e próximo passo

✦
SUA MISSÃO

Tratar resposta HTTP e falha de rede preservando a compreensão do usuário.

Agora é a sua vez

Oficina de descobertas

Decida antes de executar

Tratar resposta HTTP e falha de rede preservando a compreensão do usuário.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

Como mostrar um título que contém <em> sem interpretá-lo como HTML?

Preciso de uma pista

O título é dado textual. Escolher a API de saída adequada evita transformá-lo em marcação executável.

Carregando sua jornada…

Leve com você

Pare apenas seu servidor e tente enviar uma tarefa fictícia. Confira a mensagem e a preservação do formulário. Reinicie, atualize a lista e explique por que uma falha de rede não basta para afirmar que nada foi gravado.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.