Construir um backend de blog escalável requer uma arquitetura bem estruturada, um sistema de autenticação e APIs devidamente documentadas. A API de Blog NestJS MongoDB é um modelo de backend pronto para produção, projetado para ajudar desenvolvedores a criar rapidamente plataformas de blog modernas usando NestJS, MongoDB JWT authenticatione documentação Swagger .
Este projeto fornece uma API RESTful completa, incluindo módulos para usuários, posts, categorias, tags, comentários, autenticação e controle de acesso baseado em funções .
Repositório: https://github.com/bfotool/nestjs-mongodb-blog-base
O que é a API de blog do NestJS MongoDB?
A API de Blog NestJS MongoDB é um modelo de backend de código aberto construído com NestJS 11 e MongoDB que fornece uma API REST de blog totalmente funcional.
Ele foi projetado para servir de base para a construção de:
Plataformas de blog
Sistemas CMS sem interface gráfica
APIs de publicação de conteúdo
Sites de documentação
Blogs de portfólio de desenvolvedores
O projeto segue a arquitetura modular recomendada pelo NestJS, garantindo escalabilidade e facilidade de manutenção.
Repositório: https://github.com/bfotool/nestjs-mongodb-blog-base
Principais características
Autenticação e Autorização
A API inclui um sistema de autenticação seguro que utiliza tokens JWT.
As principais funcionalidades de autenticação incluem:
Tokens de acesso e atualização JWT
Controle de acesso baseado em funções(RBAC)
Criptografia de senhas com bcrypt
Rotas de API protegidas usando Guards
Mecanismo de atualização de token
São suportadas três funções de usuário padrão:
Administrador
Autor
Leitor
Isso facilita o gerenciamento de permissões em diferentes endpoints da API.
Módulos completos para blog
O projeto inclui diversos módulos totalmente implementados que abrangem todas as funcionalidades principais de um blog.
Módulo de Autenticação
Gerencia a autenticação e as sessões de usuário.
Os pontos de extremidade incluem:
POST /auth/registerPOST /auth/loginPOST /auth/refreshPOST /auth/logoutGET /auth/profile
Módulo de Usuários
Gerencia contas e perfis de usuários.
Pontos finais:
GET /usersGET /users/:idPATCH /users/:idDELETE /users/:id
As operações de escrita exigem permissões de administrador .
Módulo de Postagens
O módulo de posts gerencia o conteúdo do blog.
As funcionalidades incluem:
Paginação
Filtrar por categoria, etiqueta ou autor.
Classificação
Pesquisa de texto completo
Postagens em destaque
Pontos finais:
GET /postsGET /posts/featuredGET /posts/:slugPOST /postsPATCH /posts/:idDELETE /posts/:id
Módulo de Categorias
Organiza as postagens do blog em categorias.
Pontos finais:
GET /categoriesGET /categories/:slugPOST /categoriesPATCH /categories/:idDELETE /categories/:id
Módulo de Etiquetas
Permite a marcação flexível de posts de blog.
Pontos finais:
GET /tagsGET /tags/:slugPOST /tagsPATCH /tags/:idDELETE /tags/:id
Módulo de comentários
Suporta tópicos de comentários e respostas aninhadas.
Pontos finais:
GET /comments/post/:postIdGET /comments/:id/repliesPOST /commentsPATCH /comments/:idDELETE /comments/:id
Funcionalidades da API
Paginação
Todos os endpoints de lista suportam paginação.
Exemplo:
GET /posts?page=1&limit=6
Filtragem
As publicações podem ser filtradas por categoria, etiqueta ou autor.
Exemplo:
GET /posts?category=web-development
Pesquisa de texto completo
A funcionalidade de busca está implementada nas postagens.
Exemplo:
GET /posts?search=nestjs+mongodb
Classificação
As respostas da API podem ser classificadas por diferentes campos.
Exemplo:
GET /posts?sortBy=createdAt&sortOrder=desc
Geração automática de lesmas
Ao criar publicações, o sistema gera automaticamente um slug amigável para URL a partir do título, utilizando o slugify .
Exemplo:
Building REST APIs with NestJS
→ building-rest-apis-with-nestjs
Cálculo do tempo de leitura
A API calcula automaticamente o tempo estimado de leitura com base na extensão do conteúdo das postagens.
Formato de resposta da API consistente
Todas as respostas seguem uma estrutura padrão:
{
"success": true,
"data": {},
"timestamp": "2026-01-01T10:00:00Z"
}
Isso melhora a integração e a depuração do frontend.
Conjunto de tecnologias
O backend foi construído usando uma pilha Node.js moderna.
| Camada | Tecnologia |
|---|---|
| Estrutura | NestJS 11 |
| Linguagem | TypeScript 5.7 |
| Banco de dados | MongoDB 8 |
| ODM | Mangusto 8 |
| Autenticação | Passport.js + JWT |
| Validação | validador de classe |
| Documentação da API | Swagger OpenAPI |
| Segurança de senha | bcrypt |
| Gerador de Lesmas | slugify |
| Testando | Jest |
Estrutura do Projeto
O projeto segue uma arquitetura modular.
src/
├── auth/
├── users/
├── posts/
├── categories/
├── tags/
├── comments/
├── common/
└── seed/
Os componentes importantes incluem:
Validação DTO
Esquemas de mangusto
Filtros de exceção globais
Interceptores de resposta
Guardas JWT
Decoradores de papéis
Essa estrutura mantém a base de código organizada e escalável.
Como instalar e executar o projeto
Pré-requisitos
Antes de instalar, certifique-se de que você tem:
Node.js 18.17+
MongoDB 6+
npm, yarn ou pnpm
Clonar o repositório
git clone https://github.com/bfotool/nestjs-mongodb-blog-base
cd nestjs-mongodb-blog-base
Instalar dependências
npm install
Configurar variáveis de ambiente
Copie o arquivo de ambiente de exemplo:
cp .env.example .env
Atualize os seguintes valores:
MONGODB_URI=
JWT_ACCESS_SECRET=
JWT_REFRESH_SECRET=
Inicialize o banco de dados
Preencha o banco de dados com dados de exemplo:
npm run seed
Para reiniciar e recomeçar:
npm run seed:refresh
Inicie o servidor de desenvolvimento.
npm run start:dev
URL base da API:
http://localhost:3000/api/v1
Documentação Swagger:
http://localhost:3000/api/docs
Dados padrão predefinidos
O script de inicialização gera dados de amostra para teste.
| Entidade | Contar |
|---|---|
| Usuários | 5 |
| Categorias | 5 |
| Etiquetas | 28 |
| Postagens | 10 |
| Comentários | 6 |
Credenciais de login padrão
Senha para todos os usuários com privilégios de seed:
admin123
Contas:
| Papel | |
|---|---|
| Administrador | [email protected] |
| Autor | [email protected] |
| Autor | [email protected] |
| Autor | [email protected] |
| Leitor | [email protected] |
Documentação da API Swagger
A documentação interativa da API está disponível em:
http://localhost:3000/api/docs
Swagger oferece:
Teste de endpoint interativo
JWT authenticationapoiar
Documentação do esquema de requisição e resposta
Por que usar este repositório?
A API de blog do NestJS para MongoDB é um ponto de partida poderoso para desenvolvedores que criam um backend de blog moderno.
As vantagens incluem:
Arquitetura modular limpa do NestJS
Autenticação integrada e RBAC
Documentação da API Swagger pronta para uso
Integração do MongoDB usando o Mongoose
Sistema de inicialização de banco de dados
Estrutura de projeto pronta para produção
Repositório: https://github.com/bfotool/nestjs-mongodb-blog-base



