Índice de guias práticos
Índice completo (gerado automaticamente)
Todos os guias deste diretório, ordenados por nome de arquivo. Regenere com composer howto:index.
| Guide | Title |
|---|---|
| ab-testing.md | Como Fazer: Framework de Testes A/B |
| access-token-management.md | Como Construir Gerenciamento de Tokens de Acesso com NENE2 |
| account-lockout.md | Bloqueio de Conta (Proteção contra Força Bruta) |
| activity-feed.md | Como Fazer: API de Feed de Atividades / Timeline |
| add-custom-route.md | Adicionar uma rota personalizada |
| add-database-endpoint.md | Adicionar um endpoint com banco de dados |
| add-disposable-demo.md | Adicionar um demo descartável |
| add-domain-exception-handler.md | Como adicionar um handler de exceção de domínio |
| add-health-check.md | Adicionar um health check |
| add-html-view.md | Adicionar vistas HTML |
| add-jwt-authentication.md | Adicionar Autenticação JWT |
| add-mcp-tools.md | Adicionar ferramentas MCP |
| add-optimistic-locking.md | Como adicionar controle de concorrência otimista (ETag / If-Match) |
| add-pagination.md | Adicionar paginação |
| add-rate-limiting.md | Adicionar limitação de taxa |
| add-second-entity.md | Adicionar uma segunda entidade de domínio |
| admin-report-aggregation.md | Como Adicionar Agregação de Relatórios Admin |
| aggregate-reporting.md | Como Fazer: API de Relatórios Agregados |
| api-key-management.md | Gerenciamento de Chaves de API |
| api-usage-metering.md | Como Fazer: Medição de Uso e Gerenciamento de Quota de API |
| api-versioning.md | Como Fazer: Versionamento de API |
| application-caching.md | Guia de Implementação de Cache de Aplicação |
| approval-workflow.md | Como Fazer: API de Fluxo de Aprovação |
| article-relations-api.md | Como Fazer: API de Relações entre Artigos |
| article-versioning-api.md | Como Fazer: API de Versionamento de Artigos |
| asset-checkout.md | Como Fazer: Gerenciamento de Check-out / Check-in de Ativos |
| audit-trail.md | HOWTO: Trilha de Auditoria — Registrando Quem Alterou o Quê |
| batch-api-partial-success.md | Como Fazer: API em Lote com Sucesso Parcial |
| bearer-token-middleware.md | Como Fazer: Middleware de Bearer Token (Casos Extremos de Auth JWT) |
| bookmark-api.md | Como Fazer: API de Favoritos |
| bookmark-system.md | Sistema de Favoritos |
| budget-tracking.md | Como Fazer: API de Rastreamento de Orçamento |
| bulk-operations-partial-success.md | Como Fazer: Operações em Lote com Semântica de Sucesso Parcial |
| bulk-reorder-api.md | Como Fazer: API de Reordenação em Massa (Ordenação Drag-and-Drop) |
| bulk-status-update.md | Como Fazer: API de Atualização de Status em Lote |
| category-hierarchy-api.md | Como Fazer: API de Árvore de Hierarquia de Categorias |
| circuit-breaker.md | Como Fazer: Circuit Breaker |
| collection-api.md | Como Fazer: API de Coleção (Listas Curadas por Usuário) |
| comment-thread.md | Como Fazer: API de Thread de Comentários |
| contact-management.md | Como Fazer: API de Gerenciamento de Contatos |
| content-approval-workflow.md | Como Fazer: Fluxo de Aprovação de Conteúdo |
| content-collection.md | Coleção de Conteúdo |
| content-draft-lifecycle.md | Como Construir um Ciclo de Vida de Rascunho de Conteúdo (Rascunho → Publicado → Arquivado) com NENE2 |
| content-negotiation-api.md | Como Fazer: Negociação de Conteúdo — API JSON |
| content-negotiation.md | Negociação de conteúdo |
| content-pinning.md | Fixação de Conteúdo (Content Pinning) |
| content-relations.md | Relações de Conteúdo — Links M:N Auto-Referenciais Tipados |
| content-report-moderation.md | Denúncia e Moderação de Conteúdo |
| content-reporting.md | Como Fazer: Sistema de Denúncia de Conteúdo |
| content-scheduling.md | Agendamento de Conteúdo — Publicação por Tempo com Estados de Ciclo de Vida |
| content-versioning.md | Guia de Implementação de Versionamento de Conteúdo |
| coupon-discount-api.md | Como Fazer: API de Código de Desconto com Cupom |
| coupon-promo-code.md | Gerenciamento de Cupons e Códigos Promocionais |
| coupon-redemption.md | Como Fazer: API de Resgate de Cupom / Código de Desconto |
| cqrs-pattern.md | Como Fazer: Padrão CQRS |
| credit-ledger.md | Como Fazer: API de Ledger de Créditos |
| csrf-and-json-api.md | CSRF e APIs JSON |
| csv-bulk-import.md | Guia de Implementação de API de Importação em Massa via CSV |
| csv-export-formula-injection.md | Como Fazer: Prevenir Injeção de Fórmula em CSV / Planilha na Exportação |
| cursor-pagination.md | Como Fazer: Paginação Baseada em Cursor |
| data-export-api.md | Como Fazer: API de Exportação de Dados |
| data-masking.md | Como Adicionar Mascaramento de Dados |
| dead-letter-queue.md | Como Fazer: Dead Letter Queue (DLQ) |
| delegated-access-grants.md | Como Fazer: Concessões de Acesso Delegado |
| deploy-production.md | Implantar em produção |
| direct-messaging-system.md | Como Construir um Sistema de Mensagens Diretas com NENE2 |
| distributed-lock.md | Como Fazer: Lock Distribuído |
| distributed-locking.md | Lock Distribuído |
| document-template-engine.md | Como Fazer: Motor de Templates de Documento |
| document-versioning.md | Como Fazer: API de Versionamento de Documentos |
| draft-publish-workflow.md | Como Fazer: Fluxo de Trabalho Rascunho → Publicação → Arquivamento |
| dynamic-filter-query.md | Como Fazer: Consulta com Filtro Dinâmico (Cláusula WHERE Dinâmica) |
| dynamic-sort-order-injection.md | Como Fazer: Ordenação e Filtro Dinâmicos com Prevenção de Injeção em ORDER BY |
| emoji-reaction-system.md | Como Construir um Sistema de Reações com Emoji com NENE2 |
| emoji-reactions-api.md | Como Fazer: API de Reações com Emoji |
| emoji-reactions-toggle.md | Como Fazer: Reações com Emoji com Toggle e Contagens Agrupadas |
| encrypted-field-storage.md | Como Construir Armazenamento de Campos Criptografados |
| enforce-resource-ownership.md | Como Impor Ownership de Recurso (Prevenção de IDOR) |
| etag-conditional-requests.md | ETag e Requisições Condicionais |
| event-analytics-api.md | Como Fazer: API de Analytics de Eventos |
| event-analytics.md | Como Fazer: API de Analytics de Eventos |
| event-sourcing-cqrs-api.md | Como Fazer: API de Event Sourcing & CQRS |
| event-sourcing-ledger.md | Como Fazer: Ledger de Event Sourcing |
| event-sourcing.md | Event Sourcing (Básico) |
| event-ticket-booking.md | Como Fazer: Reserva de Ingressos para Eventos |
| expense-tracker.md | Como Fazer: API de Rastreamento de Despesas |
| expense-tracking-api.md | Como Fazer: API de Rastreamento de Despesas |
| feature-flag-api.md | Como Fazer: API de Feature Flag |
| feature-flags.md | Como Fazer: API de Feature Flags |
| feedback-collection.md | Como Fazer: API de Coleta de Feedback |
| file-metadata-sharing.md | Guia de Implementação de API de Gerenciamento e Compartilhamento de Metadados de Arquivo |
| file-sharing-api.md | Como Fazer: API de Compartilhamento de Arquivos |
| file-upload-metadata.md | Como Fazer: API de Metadados de Upload de Arquivo (VULN-A~L) |
| file-upload.md | Upload de arquivo (base64 JSON) |
| fixed-window-rate-limiter.md | Como Fazer: Rate Limiter de Janela Fixa |
| flash-sale-api.md | Como Fazer: API de Flash Sale |
| flash-sale-system.md | Como Construir um Sistema de Flash Sale com NENE2 |
| follow-api.md | Como Fazer: API de Seguir / Deixar de Seguir |
| ft-registry.md | Registro de FTs |
| game-score-leaderboard-api.md | Como Fazer: API de Pontuação e Ranking de Jogo |
| geolocation-api.md | Como Fazer: API de Geolocalização |
| geolocation.md | Como Adicionar Busca por Geolocalização |
| group-member-management.md | Como Fazer: Gerenciamento de Membros de Grupo |
| group-membership-management.md | Como Construir Gerenciamento de Membros de Grupo com NENE2 |
| guest-order-system.md | Como Construir um Sistema de Pedidos de Convidado (Carrinho → Pedido → Itens do Pedido) com NENE2 |
| habit-tracker.md | Como Fazer: API de Rastreador de Hábitos |
| handle-timezones.md | Como lidar com fusos horários |
| hierarchical-data.md | Dados Hierárquicos — FK Auto-Referencial + Caminho Materializado |
| idempotency-key-api.md | Como Fazer: API de Idempotency Key |
| idempotency-key.md | Como Fazer: Idempotency Key (Deduplicação de Requisições) |
| idempotency.md | Como Fazer: Padrão Idempotency-Key |
| implement-bulk-endpoint.md | Como Fazer: Implementar um Endpoint de Criação em Lote |
| implement-patch-endpoint.md | Como Fazer: Implementar um Endpoint PATCH |
| inbound-webhook-gateway.md | Como Fazer: Gateway de Webhook de Entrada |
| inbound-webhook-receiver.md | Como Adicionar um Receptor de Webhook de Entrada |
| inventory-management.md | Como Fazer: API de Gerenciamento de Estoque |
| inventory-stock-management.md | Como Fazer: Gerenciamento de Estoque de Inventário |
| invitation-referral.md | Como Fazer: API de Convite / Referral |
| invitation-system.md | Como Fazer: Sistema de Convites |
| iso-datetime-validation.md | Como Validar Datetimes ISO 8601 com Fuso Horário |
| job-queue-with-retry.md | Como Fazer: Fila de Jobs em Background com Retry e Idempotência |
| job-queue.md | Fila de Jobs em Background com Retry e Idempotência |
| json-merge-patch.md | Como Fazer: JSON Merge Patch & Detecção de Conflito com ETag |
| jwt-authentication.md | Como Fazer: Autenticação JWT |
| jwt-tenant-isolation.md | Como Fazer: Isolamento Multi-Tenant com JWT |
| leaderboard-ranking-api.md | Como Fazer: API de Ranking de Placar |
| leaderboard-ranking-system.md | Como Construir um Placar (Sistema de Ranking) com NENE2 |
| leaderboard-ranking.md | Como Fazer: API de Placar de Jogo e Ranking |
| leaderboard-scores.md | Como Fazer: API de Placar e Rastreamento de Pontuação |
| live-penetration-testing.md | Como Fazer: Teste de Penetração ao Vivo em Container |
| live-poll-system.md | Como Fazer: Sistema de Votação ao Vivo |
| magic-link-authentication.md | Como Fazer: Autenticação por Magic Link |
| mass-assignment-defence.md | Como Fazer: Defesa Contra Mass Assignment com DTO Explícito |
| mass-assignment.md | Defesa Contra Mass Assignment |
| media-watchlist.md | Como Fazer: API de Lista de Assistidos (Media Watchlist) |
| money-integer-arithmetic.md | Como Fazer: Dinheiro e Aritmética com Inteiros |
| multi-currency-money-ledger.md | Como Fazer: Razão de Contabilidade Multi-Moeda com Centavos Inteiros |
| multi-currency-wallet.md | Como Fazer: Carteira Multi-Moeda |
| multi-step-workflow.md | Como Adicionar um Fluxo de Trabalho em Múltiplas Etapas |
| multi-tenant-isolation.md | Como Fazer: Isolamento Multi-Tenant |
| multi-value-tag-filter.md | Como Fazer: API de Filtro por Tag Multi-valor |
| multilingual-content.md | Como Fazer: API de Conteúdo Multilíngue |
| nested-json-validation.md | Como Fazer: Validação de JSON Aninhado |
| note-management-ownership.md | Como Fazer: Gerenciamento de Notas com Propriedade |
| note-management-with-tags.md | Como Fazer: Gerenciamento de Notas com Tags |
| notification-inbox.md | Como Fazer: API de Caixa de Entrada de Notificações |
| notification-queue.md | Como Fazer: API de Fila de Notificações |
| numeric-verification-code.md | Como Construir Código de Verificação Numérico |
| oauth2-social-login.md | Guia de Implementação de Login Social OAuth2 |
| offset-cursor-pagination.md | Como Fazer: Paginação por Offset e Cursor |
| one-time-secrets.md | Como Fazer: API de Segredos de Uso Único e Teste de Ataque Cracker ATK-01〜12 |
| optimistic-concurrency-version.md | Como Fazer: Controle de Concorrência Otimista (Campo de Versão) |
| optimistic-lock-patch-version.md | Como Fazer: Bloqueio Otimista com PATCH + Campo de Versão |
| optimistic-locking-etag.md | Como Fazer: Bloqueio Otimista com ETag / If-Match |
| optimistic-locking.md | Bloqueio Otimista |
| order-management.md | Como Fazer: API de Gerenciamento de Pedidos |
| otp-authentication.md | Como Fazer: Sistema de Autenticação OTP |
| pagination-boundary-attack.md | Como Fazer: Ataque de Limite de Paginação e Injeção de Limit |
| pagination-limit-injection.md | Como Fazer: Prevenção de Limite de Paginação e Injeção de Limit |
| pagination.md | Paginação |
| password-auth-argon2id.md | Como Fazer: Autenticação com Senha usando Argon2id |
| password-hashing.md | Como Fazer: Hashing de Senha |
| password-reset-flow.md | Como Fazer: Fluxo de Redefinição de Senha |
| password-reset.md | Fluxo de Redefinição de Senha |
| passwordless-auth-magic-link.md | Autenticação sem Senha (Magic Link) |
| patch-partial-update.md | Como Fazer: Atualização Parcial com PATCH (JSON Merge Patch) |
| payment-webhook.md | Guia de Implementação de Recebimento de Payment Webhook |
| personal-data-export.md | Exportação de Dados Pessoais |
| pii-masking.md | Como Fazer: API de Mascaramento de PII |
| pin-bookmark-ordering.md | Como Fazer: Fixar / Marcar com Ordenação |
| pin-verification-lockout.md | Autenticação por PIN e Lockout |
| point-ledger-api.md | Como Fazer: API de Razão de Pontos |
| point-loyalty-system.md | Sistema de Pontos e Fidelidade |
| poll-survey.md | Como Fazer: API de Enquete / Pesquisa |
| prevent-double-booking.md | Como Prevenir Reserva Dupla (aplicação de reservas e capacidade) |
| price-history.md | Como Fazer: API de Histórico de Preços de Produto |
| privacy-consent-management.md | Como Construir Gerenciamento de Consentimento de Privacidade |
| product-catalog.md | Como Fazer: API de Catálogo de Produtos (ATK-01~12) |
| product-review-system.md | Sistema de Avaliação e Comentários de Produto |
| project-task-management.md | Como Fazer: Gerenciamento de Projetos e Tarefas com Recursos Aninhados |
| quality-tools.md | Ferramentas de Qualidade |
| quota-management.md | Como Fazer: API de Gerenciamento de Cotas |
| rate-limiting.md | Limitação de Taxa |
| rating-review-api.md | Como Fazer: API de Avaliação e Resenha |
| rbac-jwt-auth.md | Como Fazer: RBAC + Autenticação JWT |
| rbac.md | Como Fazer: Controle de Acesso Baseado em Papel (RBAC) |
| refresh-token-pattern.md | Como Fazer: Padrão de Refresh Token |
| refresh-token-rotation.md | Como Fazer: Rotação de Refresh Token JWT |
| request-deduplication.md | Como Adicionar Deduplicação de Requisições |
| request-scoped-state.md | Como Passar Estado com Escopo de Requisição entre Middleware e Handlers |
| reservation-availability-api.md | Como Fazer: API de Reserva e Disponibilidade |
| resource-booking.md | Como Fazer: Sistema de Reserva de Recursos |
| resource-reservation-booking.md | Como Fazer: API de Reserva e Agendamento de Recursos |
| resource-reservation.md | Como Fazer: API de Reserva de Recursos / Agendamento de Slots de Tempo |
| scheduled-publish-article.md | Como Fazer: Publicação Agendada de Artigos |
| scheduled-reminders.md | Como Fazer: API de Lembretes Agendados |
| search-autocomplete.md | Guia de Implementação de API de Busca Full-Text e Autocomplete |
| secret-vault.md | Como Fazer: API de Cofre de Segredos Pessoais |
| service-status-page.md | Como Fazer: API de Página de Status de Serviço |
| session-management.md | Como Construir um Gerenciador de Sessões Multi-Dispositivo |
| session-token-management.md | Como Fazer: API de Gerenciamento de Sessão / Token (ATK-01~12) |
| shift-management.md | Como Fazer: API de Gerenciamento de Turnos |
| shopping-cart-api.md | Como Fazer: API de Carrinho de Compras |
| signed-url-download.md | Como Fazer: URL Assinada para Downloads Seguros |
| signed-urls.md | URLs Assinadas |
| sliding-window-rate-limiter.md | Como Fazer: Rate Limiter de Janela Deslizante |
| slug-management.md | Gerenciamento de Slug — Slugs de URL Únicos com Resolução de Colisão e Histórico |
| slug-url-history.md | Como Fazer: Gerenciamento de Slug de URL com Histórico |
| soft-delete-restore-permanent.md | Como Fazer: Soft Delete, Restaurar e Exclusão Permanente |
| soft-delete-trash-purge.md | Como Fazer: Soft Delete, Lixeira e Purga Permanente |
| soft-delete-trash-restore.md | Como Fazer: API de Soft Delete, Lixeira e Restauração |
| soft-delete.md | Soft Delete (Exclusão Lógica) |
| sql-injection-defence.md | Como Fazer: Defesa contra Injeção SQL |
| sql-injection.md | Defesa contra Injeção SQL |
| sql-orderby-injection.md | Como Prevenir Injeção SQL em ORDER BY |
| sqlite-fts5-search.md | Como Fazer: Busca Full-Text SQLite FTS5 |
| state-machine-audit-log.md | Como Fazer: Máquina de Estado com Log de Auditoria |
| state-machine-workflow-api.md | Como Fazer: API de Workflow com Máquina de Estado |
| step-workflow-approval.md | Como Fazer: Workflow em Etapas com Aprovação |
| subscription-plan-management.md | Como Fazer: Gerenciamento de Plano de Assinatura |
| subscription-plan.md | Como Fazer: API de Gerenciamento de Assinatura / Plano (VULN-A~L) |
| system-announcement-management.md | Como Construir Gerenciamento de Anúncios do Sistema |
| tag-label-api.md | Como Fazer: API de Tag / Label |
| tagging-system.md | Sistema de Tagueamento (M:N) |
| tenant-isolation-idor.md | Como Fazer: Isolamento de Tenant e Prevenção de IDOR |
| tenant-isolation.md | Como Fazer: Isolamento de Tenant e Prevenção de IDOR Entre Tenants |
| threaded-comments-api.md | Como Fazer: API de Comentários em Thread |
| threaded-comments.md | Comentários em Thread |
| time-tracking.md | Como Fazer: API de Controle de Tempo |
| timezone-aware-scheduling.md | Como Fazer: Agendamento de Eventos com Awareness de Timezone |
| token-lifecycle-api.md | Como fazer: Gerenciamento do Ciclo de Vida de Tokens de API |
| totp-authentication.md | Guia de Implementação de Autenticação de Dois Fatores TOTP |
| transaction-scope-pattern.md | Como fazer: Padrão de Escopo de Transação |
| transactions.md | Transações de Banco de Dados |
| unicode-aware-text-api.md | Como fazer: API de Texto com Suporte a Unicode |
| upvote-downvote-api.md | Como fazer: API de Upvote / Downvote |
| url-bookmark-api.md | Como fazer: API de Bookmarks de URL com Filtragem por Tags |
| url-shortener-ssrf-prevention.md | Como fazer: Encurtador de URL com Prevenção de SSRF |
| url-shortener-ssrf.md | API de Encurtador de URL e Prevenção de SSRF |
| use-bearer-auth.md | Como usar autenticação com Bearer token |
| use-fts5-search.md | Usar Busca Full-Text FTS5 do SQLite |
| use-postgresql.md | Como usar PostgreSQL |
| use-transactions.md | Usar Transações de Banco de Dados |
| use-window-functions.md | Como Fazer: Usar Window Functions do SQLite |
| user-follow-system.md | Como Construir um Sistema de Seguir Usuários com NENE2 |
| user-invitation.md | Sistema de Convite de Usuários |
| user-preferences-api.md | Como fazer: API de Preferências de Usuário |
| user-preferences-management.md | Gerenciamento de Preferências de Usuário |
| user-profile-api.md | Como fazer: API de Perfil de Usuário |
| user-profile-management.md | Gerenciamento de Perfil de Usuário |
| validate-unicode-input.md | Como validar entrada Unicode |
| voting-system.md | Sistema de Votação (Upvote / Downvote) |
| waitlist-management.md | Gerenciamento de Lista de Espera |
| waitlist-system.md | Como fazer: Sistema de Lista de Espera |
| webhook-delivery-api.md | Como fazer: API de Entrega de Webhook |
| webhook-delivery-system.md | Como fazer: Sistema de Entrega de Webhook |
| webhook-delivery.md | Entrega de Webhook de Saída |
| webhook-signature-verification.md | Como fazer: Verificação de Assinatura de Webhook com HMAC-SHA256 |
| webhook-signature.md | Verificação de Assinatura de Webhook |
| wish-list-api.md | Como fazer: API de Lista de Desejos (Avaliação de Segurança VULN-A~L) |
| wishlist-management.md | Gerenciamento de Lista de Desejos |