Data de Atualização
Instalando suas PWAs no Desktop sem usar o Electron!
Instalando suas PWAs no Desktop sem usar o Electron!

Hands On: Criando APIs com Node e TypeScript
Hands On: Criando APIs com Node e TypeScript

Criando APIs com NodeJs - Aula 38: Outros
Criando APIs com NodeJs - Aula 38: Outros

Nesta aula, vamos aprender a configurar o Body Parser e o CORS em nossa API. Ajustaremos o limite de tamanho do JSON para lidar com imagens grandes e liberaremos o CORS para permitir requisições de diferentes origens. Também veremos a importância de incluir o xAccessToken nos headers para garantir o funcionamento correto das requisições.

Criando APIs com NodeJs - Aula 37: Autorização
Criando APIs com NodeJs - Aula 37: Autorização

Nesta aula, vamos aprender sobre a implementação de autorização em uma aplicação. Criaremos um enum para definir roles como user e admin, com user como padrão. Configuramos um método para verificar se um usuário é admin, permitindo que apenas administradores possam gerenciar produtos. A aula também aborda o uso de interceptores para gerenciar permissões de acesso.

Criando APIs com NodeJs - Aula 40: Conclusão
Criando APIs com NodeJs - Aula 40: Conclusão

Nesta aula, vamos aprender sobre o uso do MVC, criação de aplicações com integração contínua no Azure, e uso de models com Mongoose. Exploraremos a separação de rotas, controllers e repositórios, além de trabalhar com upload de imagens e envio de e-mails. Também abordaremos autenticação e autorização com JSON Web Tokens, tudo para preparar sua aplicação para produção no Azure.

Criando APIs com NodeJs - Aula 39: Publicando a API
Criando APIs com NodeJs - Aula 39: Publicando a API

Nesta aula, vamos aprender a publicar uma API no Azure usando o App Service. Criaremos um resource group, configuraremos a aplicação e integraremos com o GitHub para deploys automáticos após cada commit. Isso facilita o versionamento e o deployment contínuo, garantindo a integridade do projeto.

Criando APIs com NodeJs - Aula 35: Recuperando dados do usuário logado
Criando APIs com NodeJs - Aula 35: Recuperando dados do usuário logado

Nesta aula, vamos aprender a melhorar a segurança ao processar pedidos em uma API. Em vez de passar o cliente no corpo da requisição, usaremos um token para identificar o usuário logado. Implementaremos autenticação nas rotas e incluiremos o ID do usuário no token para facilitar a validação. Assim, garantimos que apenas usuários autenticados possam criar ou listar pedidos.

Criando APIs com NodeJs - Aula 36: Refresh Token
Criando APIs com NodeJs - Aula 36: Refresh Token

Nesta aula, vamos aprender a fazer o refresh de um token válido. Quando um token está prestes a expirar, podemos gerar um novo token a partir do atual. Implementamos um método chamado refresh token, que verifica se o token é válido e, se for, gera um novo. Essa técnica mantém o usuário logado sem exigir novas credenciais, apenas usando o token existente para renovação.

Criando APIs com NodeJs - Aula 32: Enviando E-mail de Boas Vindas
Criando APIs com NodeJs - Aula 32: Enviando E-mail de Boas Vindas

Nesta aula, vamos aprender a enviar e-mails com o SendGrid. Exploramos a criação de um serviço de e-mail, configurando templates e dados dinâmicos. Discutimos os desafios do SMTP pessoal e as vantagens do SendGrid, que oferece 25 mil e-mails gratuitos mensais. Criamos um serviço reutilizável para facilitar o envio de e-mails em várias partes do sistema.

Criando APIs com NodeJs - Aula 34: Autenticação
Criando APIs com NodeJs - Aula 34: Autenticação

Nesta aula, vamos aprender sobre a implementação de autenticação e autorização em APIs usando tokens JWT. Discutimos como gerar e decodificar tokens, além de proteger rotas com um serviço de autorização. Exploramos a instalação de pacotes necessários e a configuração de rotas para garantir que apenas usuários autenticados possam acessar determinadas funcionalidades.

Criando APIs com NodeJs - Aula 33: Upload da Imagem do Produto
Criando APIs com NodeJs - Aula 33: Upload da Imagem do Produto

Nesta aula, vamos aprender a adicionar imagens a produtos usando o Azure Storage, armazenando apenas o caminho da imagem. Criaremos um Blob Service para gerenciar arquivos e configurar o armazenamento no Azure, garantindo que a aplicação seja escalável e eficiente sem sobrecarregar o servidor local.

Criando APIs com NodeJs - Aula 29: Revisitando os Controllers: Order
Criando APIs com NodeJs - Aula 29: Revisitando os Controllers: Order

Nesta aula, vamos aprender a criar e gerenciar pedidos em um sistema com Node.js. Criaremos arquivos para o repositório e controlador de pedidos, implementaremos métodos para criar e buscar pedidos, e configuraremos rotas para interação. Usaremos a função Populate para enriquecer os dados, trazendo detalhes de clientes e produtos associados.

Criando APIs com NodeJs - Aula 30: Arquivo de Configurações
Criando APIs com NodeJs - Aula 30: Arquivo de Configurações

Nesta aula, vamos aprender a criar um arquivo de configuração em Node.js para armazenar informações como a connection string, sendgrid key e outras chaves necessárias. Vamos explorar como usar variáveis globais e o módulo exports para acessar essas configurações no app.js, além de discutir a importância de encriptar senhas antes de salvá-las.

Criando APIs com NodeJs - Aula 31: Encriptando a senha
Criando APIs com NodeJs - Aula 31: Encriptando a senha

Nesta aula, vamos aprender a encriptar senhas com MD5 para segurança dos dados. Instalamos e importamos a dependência MD5, depois concatenamos a senha com uma chave privada antes de gerar o hash. Isso dificulta a quebra da senha. Por fim, testamos a implementação para garantir seu funcionamento.

Criando APIs com NodeJs - Aula 26: Revisitando os Models: Customer
Criando APIs com NodeJs - Aula 26: Revisitando os Models: Customer

Nesta aula, vamos aprender a prosseguir com a criação de modelos e controllers em nossa API. Focaremos na criação do modelo "customer", que incluirá campos como nome, e-mail e senha. Também veremos como referenciar clientes em outros modelos, como pedidos. Por fim, aprenderemos a carregar o modelo na aplicação para finalizar essa parte da API.

Criando APIs com NodeJs - Aula 27: Revisitando os Models: Order
Criando APIs com NodeJs - Aula 27: Revisitando os Models: Order

Nesta aula, vamos aprender a criar um arquivo order.js, onde estruturamos um modelo de pedido utilizando NoSQL. Exploramos a inclusão de campos como número da ordem, data de criação e status, além de itens do pedido que referenciam produtos. Demonstramos como alinhar objetos sem criar coleções separadas, garantindo eficiência e organização no esquema.

Criando APIs com NodeJs - Aula 28: Revisitando os Controllers: Customer
Criando APIs com NodeJs - Aula 28: Revisitando os Controllers: Customer

Nesta aula, vamos aprender a criar um customerController.js e um customerRepository.js, utilizando como base um productRepository existente. Implementaremos métodos assíncronos para criar clientes, validaremos entradas como nome, e-mail e senha e configuraremos rotas para gerenciar requisições. Ao final, testaremos a criação de clientes em um banco de dados.

Criando APIs com NodeJs - Aula 24: Repositórios
Criando APIs com NodeJs - Aula 24: Repositórios

Nesta aula, vamos aprender a implementar o Repository Pattern no .NET para isolar o acesso a dados dos controllers, facilitando a manutenção. Criamos um Product Repository para mover métodos de acesso a dados, como getById e getBySlug, do controller para o repositório. Isso permite que a aplicação lide com mudanças na estrutura de dados sem afetar os controllers.

Criando APIs com NodeJs - Aula 25: Async/Await
Criando APIs com NodeJs - Aula 25: Async/Await

Nesta aula, vamos aprender a lidar com promessas no Node.js usando async e await. Isso nos permite executar funções assíncronas de forma mais organizada, evitando encadeamentos complexos de promises. Ao usar async e await, o código fica mais limpo e legível, semelhante ao C Sharp, facilitando a manipulação de dados e tratamento de erros em aplicações JavaScript.

Criando APIs com NodeJs - Aula 23: Validações
Criando APIs com NodeJs - Aula 23: Validações

Nesta aula, vamos aprender a criar validações personalizadas sem depender do Mongoose, utilizando um conceito chamado Design by Contracts. Vamos desenvolver um Fluent Validator para definir regras de validação, como tamanho mínimo de caracteres, e aplicá-las em nossas requisições. Isso nos permitirá evitar múltiplos IFs no código e manter a lógica de validação organizada.

Criando APIs com NodeJs - Aula 20: Listando os Produtos de uma tag
Criando APIs com NodeJs - Aula 20: Listando os Produtos de uma tag

Nesta aula, vamos aprender a criar um método para filtrar produtos por tags usando Mongoose. Utilizando o método getByTag, podemos receber uma tag como parâmetro e filtrar produtos automaticamente dentro de um array. Isso simplifica o processo, evitando loops ou consultas complexas, e facilita a obtenção de produtos relacionados a uma tag específica.

Criando APIs com NodeJs - Aula 22: Excluindo um produto
Criando APIs com NodeJs - Aula 22: Excluindo um produto

Nesta aula, vamos aprender a usar o método findOneAndRemove para deletar produtos por ID em uma aplicação. Discutimos como mapear o ID na rota e a opção de usar request.params.id ou request.body.id. Além disso, revisamos outros métodos CRUD no Mongoose, como findByIdAndUpdate e save, preparando o caminho para futuras lições sobre relacionamentos entre dados.

Criando APIs com NodeJs - Aula 21: Atualizando um produto
Criando APIs com NodeJs - Aula 21: Atualizando um produto

Nesta aula, vamos aprender a atualizar um produto usando o método PUT. Recebemos o ID via request.params.id e os dados via request.body. Utilizamos findByIdAndUpdate no MongoDB para ajustar campos como title, description e price. Retornamos status 200 para sucesso ou 400 para erro.

Criando APIs com NodeJs - Aula 18: Listando um Produto pelo slug
Criando APIs com NodeJs - Aula 18: Listando um Produto pelo slug

Nesta aula, vamos aprender a implementar o método getBySlug, que filtra produtos pelo slug recebido, retornando informações como título, descrição, preço e tags. Ajustamos o método para usar find1, garantindo que apenas um item seja retornado, evitando arrays desnecessários.