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

Erros úteis, limites explícitos

Quem usa a aplicação precisa saber o que fazer sem receber detalhes internos.

Trilhas de aprendizado18 min

Vamos descobrir juntos

  1. 1

    Neste contrato, JSON quebrado recebe 400, regra inválida 422, alvo inexistente 404 e falha do banco 503. Tipo de conteúdo errado pode receber 415. Esses códigos não são notas do aluno: comunicam resultados HTTP diferentes e ajudam o cliente a reagir.

  2. 2

    DefaultBodyLimit limita o corpo a 4.096 bytes. Um título de 5.000 letras não chega à validação como se fosse um campo pequeno: o pedido recebe 413. Limite de corpo e limite de título medem coisas diferentes. Parâmetros com tipos inválidos também podem ser rejeitados antes do handler.

  3. 3

    Chamadas de escrita com Origin externo recebem 403; o cliente da mesma origem usa o endereço local. Isso reduz um tipo de chamada de navegador, mas não autentica pessoas nem bloqueia programas locais que omitam Origin. Loopback e cabeçalhos não substituem autorização.

  4. 4

    Uma falha do banco devolve storage_unavailable. O log não imprime títulos, SQL, caminhos nem credenciais. O kit usa CSP e nosniff, mas não promete proteção completa, limites por pessoa, auditoria ou disponibilidade. Testes de laboratório verificam comportamentos específicos, não uma certificação de segurança.

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

src/routes.rs

400  invalid JSON syntax
422  invalid title or priority
403  external Origin on a write
404  missing mission
413  body over 4096 bytes
503  storage unavailable

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

Diferenciar erros de formato, regra, origem, alvo e armazenamento.

Agora é a sua vez

Oficina de descobertas

Decida antes de executar

Diferenciar erros de formato, regra, origem, alvo e armazenamento.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

O que a checagem de Origin comprova?

Preciso de uma pista

Defesas têm escopo. Separar origem, identidade e permissão evita publicar um laboratório como se fosse um serviço completo.

Carregando sua jornada…

Leve com você

Monte uma tabela com entrada, status esperado e próximo passo do usuário para três falhas. Execute uma no teste local e confira que a contagem de missões não aumentou.

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.