Udemy

Platform

Português

Language

Web Development

Category

Design de API's RestFul com Spring Boot, TDD e o novo JUnit5

API's RestFul de alto nível com Spring Boot utilizando TDD e o novo JUnit 5.

4.69 (432 reviews)

Design de API's RestFul com Spring Boot, TDD e o novo JUnit5

Students

13 hours

Content

Dec 2019

Last Update
Regular Price


What you will learn

Criar aplicações do zero com Spring Boot

Modelar e desenvolver API's RestFUL, utilizar adequadamente os métodos HTTP, códigos de status, etc

Desenvolver utilizando técnicas TDD e BDD

Criar testes unitários e de integração com JUnit 5, AssertJ, Mockito, etc

Desenvolver uma arquitetura de aplicação em camadas

Documentar a API's com Swagger

Criar serviço de agendamento de tarefas e envio de emails com o Java

Configuração de Deploy Contínuo

Cobertura de Código

Gerar o build da aplicação e fazer o deploy de sua API na nuvem

Integração do Github com Codecov e Travis CI


Description

Nesse curso, feito de desenvolvedor para desenvolvedor, trago conceitos fundamentais sobre testes automatizados e Api's RestFul,  além de boas práticas e Clean Code, para, em integração, criarmos API's RestFul utilizando a técnica do TDD (Test Driven Development), onde desenvolveremos orientado a testes, uma API RestFul utilizando Spring Boot. Curso 100% prático onde eu codifico todos os códigos.


Dentre outros conhecimentos, você aprenderá:


A modelar uma API RestFUL, utilizar os métodos HTTP, códigos de resposta, etc.;

Criar serviço de agendamento de tarefas e envio de emails com o Java;

Documentação de API's com Swagger

Implementação de testes automatizados;

Configuração de Deploy Contínuo;

Publicação da API na nuvem.


Content

Introdução

Introdução

Instalação de ferramentas

Repositório do projeto no GITHUB

Conceitos básicos sobre testes automatizados

Objetivos da sessão

Por que testar seu código?

Tipos de testes abordados no curso

Conhecendo a estrutura de um teste e implementando o primeiro teste com java

Assertivas com AssertJ

Desafio da Calculadora

Prática: Testando uma calculadora

O que é TDD (Test Driven Development)

Criando um cadastro de pessoas com TDD

O que é BDD (Behavior Driven Development)

Conhecendo a biblioteca Mockito e o recurso Mock

Outros recursos úteis do Mockito

Novidades do JUnit 5

Módulo de conceitos básicos sobre testes automatizados

Conceitos básicos sobre Rest

Objetivos da sessão

O que é Rest

Verbos HTTP

Modelagem de recursos de uma API RestFul

Como utilizar os códigos de status HTTP

Representação de recursos com JSON (JavaScript Object Notation)

Módulo de conceitos básicos sobre Rest

Iniciando com Spring Boot

Objetivos da sessão

Criando um projeto Spring boot do zero

Básico para criação de uma API Rest na prática com Spring boot parte 1

Básico para criação de uma API Rest na prática com Spring boot parte 2

Projeto Library API: Livros

Apresentando o Projeto e Arquitetura

Criação e importação do projeto na IDE

Testando o Projeto

Apresentando o design da API de livros

Como criar classes de testes para testar Rest Controllers

Aprendendo a desenhar uma requisição utilizando TDD

Controller, DTO e Lombok Project

Refatorando o teste para receber json via requisição

Utilizando a camada de serviço e o recurso mocks

Adicionando o ModelMapper ao projeto

Criando o teste da camada de serviço

Criando a implementação do BookService

Utilizando os recursos Bean Validation e Exception Handler

Lidando com erros de regra de negocio

Testando fluxo de exceções na camada de serviço

Criando nosso primeiro teste de integração com a base de dados

Verificando a existência de um livro pelo ISBN na base de dados

Adicionando nosso código fonte ao GITHUB

Criando a funcionalidade de obter as informações de um livro

Implementando o cenário onde o livro não existe no servidor

Deleção de livros

Atualização de livros

Teste unitário de obter livro por id na camada de serviço

Teste de Integração do método findById

Desafio dos métodos delete e update

Resposta do desafio delete - implementando o teste de deleção

Resposta do desafio update - implementando o teste de atualização

Testes de integração do repository para os métodos save e delete

Criando o design da consulta de livros por parâmetros

Implementando a consulta de livros

Implementando o filtro de livros com Example do spring data

Projeto Library API: Empréstimos

Modelagem da API de empréstimos

Primeiro Teste da API de emprestimos

Implementando o Post de Empréstimos

Lançando erro quando não encontrar o livro para fazer o empréstimo

Utilizando o RestControllerAdvice para tratamento de exceções de nossa API

Implementando validação de livro já emprestado

Enviando o código para o GITHUB através do IntelliJ

Implementando o getBookByIsbn na camada de serviço

Implementando o método de salvar o empréstimo da camada de serviço

Lançando erro ao tentar fazer empréstimo de um livro já emprestado

Teste de integração para verificar a existência de um livro emprestado

Funcionalidade de devolução/retorno de livros

Fazendo a devolução de um empréstimo inexistente

obtendo as informações de um empréstimo por id

implementando a atualização de empréstimos

Pesquisa de Empréstimos

Finalizando a pesquisa de empréstimos

Implementando a busca de empréstimos na camada de serviço

Finalizando os testes de integração de empréstimos

Sub-recursos, Envio de Emails e Agendamento de tarefas com Spring

Objetivos da sessão

Implementação de rota com sub-recurso

Implementando a busca de empréstimos por livro

Agendamento de tarefas com Schedules do Spring

Realizando as alterações para receber o email do customer

Criando consulta de empréstimos atrasados

Implementando o serviço de agendamento de tarefas

Configurando o servidor MailTrap para envio de emails

Implementando o serviço de email

Testando o envio de emails

Publicando as modificações no GITHUB

Documentando a API

Objetivos da sessão

Configurando o Swagger no projeto

Documentando a API com Swagger

Customizando o Swagger UI

Logs, Métricas e Monitoramento da API com Actuator e Spring Boot Admin

Objetivos da sessão

Adicionando o actuator para obter métricas sobre a Aplicação

Adicionando Logs para a aplicação

Apresentando o projeto Spring boot Admin

Monitorando nossa aplicação Spring boot com o Spring boot Admin

Integração contínua

Deploy contínuo com Travis CI

Corrigindo os testes para rodar novamente o Travis

Executando o build com integração continua

Adicionando a bagde de integração contínua no nosso repositório

Cobertura de Código com Jacoco e Codecov

O que é cobertura de código

Configurando e executando o Jacoco no projeto

Configurando o Codecov no repositório do Github

Colocando a API em produção na Nuvem

Configurando o Heroku e fazendo o deploy na nuvem

Configurando o deploy no heroku através do github

Como fazer o build e gerar os artefator JAR ou WAR

Testando a API de livros em produção através do Insomnia

Testando a API de empréstimos em produção

Final

Finalizando o curso


Reviews

B
Bruno30 September 2020

Fui desclassificado de um processo seletivo por uma má prática de programação ensinada neste curso (exposição de arquivos log ao utlizar o actuator). Além disso o curso possuí outros problemas, como a variação de volume e qualidade do audio durante as aulas.

V
Vinicius25 July 2020

Excelente curso, cumpre o que propõe que é ensinar as bases do TDD utilizando o Java com o framework Spring.

L
Leandro18 July 2020

Muito bom, didática muito boa de rápida compreensão. Espero que futuramente tenha cursos aplicando os testes em Spring Security, OAUTH2 e o próprio Scheduler utilizado no curso! Parabéns pelo ótimo curso professor!

I
Isadora14 July 2020

A didática é bem boa, dá pra entender bem como fazer a cobertura de testes, é importante já conhecer um pouco de spring e bastante de java, mas o professor sempre explica o que está fazendo passo a passo

M
Márcio14 July 2020

Porque esclareceu várias dúvidas das tecnologias que utilizo no dia a dia e pude aprender novas tecnologias.

R
Renato12 May 2020

Este curso aborda conceitos importantes tanto da área e testes quanto da área de desenvolvimento java, parabéns ao instrutor que demonstra saber o conteúdo.

R
Rafael3 May 2020

até que enfim entendi o que é TDD! exemplos práticos com tecnologias que eu uso no trabalho e com um contexto real ótimo pra quem já trabalha com Spring Boot / Mockito / JUnit e tem dificuldade com testes

L
Luis1 May 2020

Sempre quis aprender TDD. Aprendi MUITO MAIS do que eu esperava. Inclusive sobre o design de API que sempre achei bem interessante. Sem dúvidas, o curso me surpreendeu e muito e também é o melhor curso de dev REST com java que já comprei

V
Vitor6 April 2020

Aprendendo bastante seguindo o demonstrado, acredito que deveria ter mais desafios após mostrar algum conceito.

J
José5 April 2020

Muito bom o curso, faltou um detalhe na criação do spring boot admin, mais como o curso é para quem tem experiencia deu para se virar., adorei as ferramentas de metricas e CI/CD. Parabéns

F
Flavio30 March 2020

Estou na metade e estou gostando bastante, o instrutor vai fazendo e explicando o que e o motivo de estar fazendo. O instrutor conhece bem dos assuntos abordados. Indico o curso.

F
Felipe16 February 2020

Ótimo curso, aprendi diversas boas práticas e utilização de ferramentas para garantir a qualidade e confiabilidade do software.

M
Marcos22 January 2020

Gostei demais do curso, sem dúvida acrescentou muito conhecimento e agora é praticar mais e por em prática

W
Wender22 December 2019

Curso excepcional, a parte de testes que mais me deixava com dor de cabeça foi muito bem explicada com TDD, Mockito, JUnit e tudo mais, e ainda de quebra ganhei mais um pouco de conhecimento com a estrutura do projeto apresentada durante o curso, e com algumas bibliotecas utilizadas. Se você quer aprender como testar um controller, service ou um repository o curso é excelente para a esta finalidade.

M
Mario19 December 2019

Excelente curso. Bastante completo , onde você nota que o instrutor domina o assunto. Utiliza tecnologia de ponta e possui um material ótimo.


2633022

Udemy ID

10/31/2019

Course created date

12/20/2019

Course Indexed date
Bot
Course Submitted by