REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker

Desenvolva uma API REST do 0 e implante na AWS c. Spring Boot framework Swagger JWT JUnit 5 Mockito Docker React JS e +

4.77 (2730 reviews)
Udemy
platform
Português
language
Programming Languages
category
instructor
13,619
students
31.5 hours
content
Mar 2024
last update
$64.99
regular price

What you will learn

10% Teoria e 90% Prática

A desenvolver uma API RESTFul do 0 absoluto

As boas práticas a se adotar ao desenvolver API’s

Entenderá os conceitos teóricos que fundamentam o REST

Como trabalhar com Postman

Como fazer requests RESTful usando Postman

Entenderá o modelo de maturidade RESTful

Os principais Verbos do REST

Como usar parâmetros via query, path, header e body

Paginação de API's

Versionamento de API's

Entender sobre Media Types e Content Negotiation

Fazer upload de arquivos na sua API

Disponibilizar download de arquivos na sua API

Aprenderá na prática HATEOAS

Documentar uma API com o Swagger (Open API)

Conceitos básicos de SQL e Migrations

Técnicas de Autenticação REST e segurança com JWT

Aprenderão a usar alguns padrões de projetos

Dividir a aplicação em diferentes camadas

Testes unitários com JUnit 5 e Mockito

Testes de Integração com JUnit 5, REST Assured e Testcontainers

Utilizar os principais serviços da AWS como RDS, EC2, IAM User e ECS

Integração e Deploy Contínuos envolvendo o Github, o Github Actions e a Amazon AWS

Disponibilizar uma API na nuvem da Amazon AWS

Aprenda a consumir uma API de terceiros

EXTRA - Conceitos básicos de Docker

EXTRA - Conceitos básicos de Docker Compose

EXTRA - Como implantar o projeto na nuvem

EXTRA - [Minicruso de React JS] Como Consumir a API com ReactJS

EXTRA - Como Integrar API's RESTful à API do ChatGPT

Description

* Venha se especializar no desenvolvimento de API's com a mais nova versão do Spring Boot (Spring Boot 3) que atualmente é uma verdadeira febre! *


[01/12/2023] Novas aulas explicando as principais mudanças do Spring Boot 3.2.0 foram adicionadas. Além de todo o conteúdo prático do curso, foi adicionada uma nova seção ensinando como consumir uma API de terceiros. E pra que sua experiência seja ainda mais fantástica consumiremos a API do ChatGPT.


O curso ensina os fundamentos centrais de Webservices API's REST e RESTful tanto na teoria(10%), quanto na prática(90%). Esse conhecimento será aplicado na implementação de uma API RESTful com SpringBoot 3 e Java 18. Iniciaremos com uma aplicação simples aprendendo como funciona as principais annotations e aprendendo a tratar exceções sempre avançando gradualmente para cenários mais complexos. Abordaremos, noções de HTTP, verbos/métodos, tipos de parâmetros, paginação, upload e download de arquivos, versionamento, HATEOAS, Swagger, autenticação e muito mais.

Ao final iremos adicionar o suporte ao Docker e implantar nossa API em um cluster Amazon ECS de forma manual. E pra fechar o treinamento com chave de ouro iremos implementar um pipeline de integração contínua envolvendo o Github, o Github Actions e um Cluster ECS na Amazon AWS. Vai ser incrível você commita o código e envia pro Github, o Github Actions constrói as Docker Images e implanta na Amazon "Automágicamente".

Nesse treinamento abordaremos, tecnologias como:


  • Spring Boot 3;

  • Java 18;

  • Conceitos arquiteturais do REST/RESTful;

  • Migrations com Flyway;

  • Postman;

  • Integração com o banco de dados MySQL;

  • Content Negotiation;

  • Versionamento de API’s;

  • HATEOAS;

  • Swagger Open API;

  • Autenticação com JWT e Spring Security;

  • Testes unitários e de integração com:

    • JUnit 5;

    • Mockito;

    • REST Assured;

    • Testcontainers.

  • Upload e download de arquivos;

  • [EXTRA 1] Dockerização da Aplicação

  • [EXTRA 2] Implantação na Amazon AWS

  • [EXTRA 3] Integração Contínua na Amazon AWS com o Github Actions

  • [EXTRA 4] Como consumir a API com React JS

  • Padrões de Projetos e muito mais!

Mas não para por aí na última atualização foram adicionadas novas seções ensinando atalhos de produtividade, como usar outros bancos de dados, como migrar de versões antigas para a versão mais recente do framework e uma seção ensinando tudo o que você precisa saber pra consumir uma API com React JS. Na verdade, é tanto conteúdo que só essa seção já poderia ser considerada um minicurso à parte.

Enfim o objetivo central do curso é servir como um ponto de partida de onde os alunos possam expandir seus conhecimentos sobre o tema e possam “caminhar com as próprias pernas”.

Se você está pronto para aumentar e muito suas perspectivas de carreira, aprendendo REST com Spring Boot 3 e Java 18 partindo do zero e estar preparado pra vaga dos sonhos em pouco mais de 24 horas a partir de agora? Clique no botão "Inscreva-se agora" e comece imediatamente!

Te vejo lá!

Content

Apresentação

0101 Apresentação

Fundamentos Teóricos Do REST

0201 Apresentação Da Seção Fundamentos Teóricos Do REST
0202 O Que São Webservices
0203 SOAP x REST
0204 REST
0205 Request E Response
0206 Tipos De Parâmetros
0207 Status Codes
0208 Os Verbos HTTP E O REST
0209 Os Verbos HTTP Menos Conhecidos
0210 Níveis De Maturidade Do REST
0211 HATEOAS
0212 Documentação Swagger
0213 Autenticação
0214 Versionamento
0215 Indo Além Do RESTFul
0216 Boas Práticas
0217 Conclusão Da Seção Fundamentos Teóricos Do REST

Configuração do Ambiente de Desenvolvimento no Windows

0301 - Apresentação Da Seção - Configuração Do Ambiente No Windows
0302 Instalando o Java
0303 Instalando o Maven
0304 Instalando o Eclipse
0305 Instalando O ItelliJ IDEA
0306 Instalando o GIT
0307 Instalando o MySQL
0308 Instalando o MySQL Workbench
0309 Instalando o HeidiSQL
0310 Instalando O Postman
0311 Instalando o Docker
0312 Instalando O Docker - Para Quem Precisou Usar O Docker Toolbox
0313 - Conclusão Da Seção - Configuração Do Ambiente No Windows

Configuração do Ambiente de Desenvolvimento no Linux

0401 Apresentação Da Seção - Configuração Do Ambiente No Linux
0402 Instalando o Virtual Box
0403 Criando A Máquina Virtual e Instalando o Ubuntu
0404 Instalando o Java
0405 Instalando o Maven
0406 Instalando o Eclipse
0407 Instalando o MySQL
0408 Instalando o MySQL Workbench
0409 Criando a Base de Dados
0410 Instalando O Postman
0411 Instalando o Docker
0412 Instalando o Docker Compose
0413 Instalando o GIT
0414 Importando e Executando o Projeto no Linux
0415 Conclusão da Seção - Configuração do Ambiente no Linux

Primeiros Passos

0501 Apresentação da Seção - Primeiros Passos
0502 Criando o Nosso Repositório GIT
0503 Criando o Nosso Projeto no Spring Initializr
0504 Criando o Nosso Projeto no Eclipse
0505 Adicionando o Spring Boot ao Projeto
0506 Enviando o Nosso Código Para o Github
0507 Entendendo o Gitignore
0508 Conclusão da Seção - Primeiros Passos

Implementando uma Calculadora

0601 Apresentação da Seção - Implementando uma Calculadora
0602 Implementando o Controller
0603 Definindo a Lógica
0604 Os Métodos de Validação
0605 Executando o Projeto
0606 Tratamento de Exceções
0607 Implementando as Demais Operações
0608 Conclusão da Seção - Implementando uma Calculadora

Aprendendo os Quatro Verbos Principais

0701 Apresentação da Seção - Aprendendo os Quatro Verbos Principais
0702 Criando e Injetando Serviços no Controller
0703 Retornando Listas de Objetos
0704 Os Verbos POST, PUT e DELETE
0705 Conclusão da Seção - Aprendendo os Quatro Verbos Principais

Integrando Nossa API ao MySQL

0801 Apresentação da Seção - Integrando a Aplicação ao Banco de Dados
0802 Criando a Base de Dados e Definindo as Propriedades do application.properti
0803 Implementando Nossa Entidade e Repositório
0804 Ajustando o Nosso Service
0805 Ajustando o Nosso Controller
0806 Ajustando o Nosso Controller Para as Novas Implementações
0807 Conclusão da Seção - Integrando a Aplicação ao Banco de Dados

O Padrão de Projetos VO (Value Object)

0901 Apresentação da Seção - Padrão de Projetos Value Object (VO)
0902 O Padrão de Projetos VO (Value Object)
0903 Implementando o Padrão de Projetos VO com o Framework Dozer
0904 Criando os Testes do DozerConverter
0905 Ajustando o Service e o Controller
0906 Conclusão da Seção - Padrão de Projetos Value Object (VO)

Versionamento de API's

1001 Apresentação da Seção - Versionamento de API's
1002 Versionamento de APIs
1003 Criando um Custom Converter
1004 Conclusão da Seção - Versionamento de API's

Adicionando Suporte à Migrations

1101 Apresentação da Seção - Migrations com o Flyway
1102 Migrations com Flyway
1103 Migrations com Flyway via Plugin no POM
1104 Conclusão da Seção - Migrations com o Flyway

Custom JSON Serialization

1201 Apresentação da Seção - Custom JSON Serialization
1202 Custom JSON Serialization
1203 Conclusão da Seção - Custom JSON Serialization

Content Negotiation

1301 Apresentação da Seção - Content Negotiation
1302 Implementando Content Negotiation via Extension
1303 Content Negociation via QUERY Parameter
1304 Content Negotiation via HEADER Parameter
1305 Serializando YAML - YML
1306 Conclusão da Seção - Content Negotiation

Implementando HATEOAS

1401 Apresentação da Seção - HATEOAS
1402 Implementando HATEOAS
1403 Adicionando Suporte à HATEOAS aos Demais Métodos
1404 Conclusão da Seção - HATEOAS

Adicionando o Suporte ao Swagger

1501 Apresentação da Seção - Swagger
1502 Adicionando o Suporte ao Swagger
1503 Implementando um Novo Controller
1504 Customizando o Swagger
1505 Importando o Nosso Api-Docs do Swagger no Postman
1506 Conclusão da Seção - Swagger

Configurando CORS - Cross-origin Resource Sharing

1601 Apresentação da Seção - CORS
1602 Habilitando CORS no Spring Boot
1603 Habilitando CORS de Forma Global
1604 Conclusão da Seção - CORS

Autenticação com JWT e Spring Security

1701 Apresentação da Seção - Autenticação com JWT e Spring Security
1702 Ajustando a Base de Dados Para Suportar Autenticação
1703 Adicionando o Spring Security, o JWT e Mapeando as Entidades
1704 Implementando o Nosso Repositório e o Nosso Serviço
1705 Criando Exceptions Customizadas e o VO de Credenciais
1706 Implementando o JwtTokenProvider
1707 Implementando o JwtTokenFilter e o JwtConfigurer
1708 Implementando o SecurityConfig
1709 Implementando o Controller Responsável Pela Autenticação
1710 Testando a Nossa API
1711 Ajustando o Bug do Token não Autorizado
1712 Criando um Environment no Postman para Armazenar o Token
1713 Conclusão da Seção - Autenticação com JWT e Spring Security

O Verbo PATCH

1801 Apresentação da Seção - O Verbo PATCH
1802 Trabalhando com o Verbo PATCH
1803 Testando a Implementação no Postman
1804 Conclusão da Seção - O Verbo PATCH

Busca paginada e Query Params

1901 Apresentação da Seção - Query Params e Busca Paginada
1902 Busca paginada e Query Params
1903 Implementando Paginação com Pageable e Query Params
1904 Implementando Ordenação com Direction
1905 Retornando PagedResources
1906 Customizando o Pageable
1907 Removendo Warnings
1908 Conclusão da Seção - Query Params e Busca Paginada

Upload e Download de Arquivos

2001 Apresentação da Seção - Upload e Download de Arquivos
2002 Definindo as Configurações
2003 Ajustando as Exceptions e Response
2004 Criando o Serviço Responsável por Armazenar o Arquivo em Disco
2005 Criando o Controller Responsável Pelo Upload
2006 Upload de Vários Arquivos Simultaneamente
2007 Preparando o Serviço para Prover Downloads
2008 Implementando o Download de Arquivos
2009 Conclusão da Seção - Upload e Download de Arquivos

Adicionando Suporte ao Docker

2101 Apresentação da Seção - Adicionando Suporte ao Docker
2102 O que é o Docker
2103 O que é o Docker Compose
2104 Adicionando o Suporte ao Docker
2105 Iniciando a Aplicação e Ajustando Problemas
2106 Iniciando a aplicação e testando no Postman
2107 O Que é o Docker Hub e Como Criar Uma Conta
2108 Enviando As Imagens Para o DockerHub
2109 Integração Contínua com o Travis CI
2110 Conclusão da Seção - Adicionando Suporte ao Docker

Implantação na Amazon AWS

2201 Apresentação da Seção
2202 O Nível Gratuito da Amazon AWS
2203 Criação de Uma Conta na Amazon
2204 Criação do Banco de Dados MySQL na Amazon
2205 Integrando a Aplicação ao Banco MySQL RDS na Amazon
2206 Criação de um Usuário IAM Para Gerenciar o Nosso ECR
2207 Criação de um Cluster ECS
2208 Criação de um Repositório ECR para as Nossas Docker Images
2209 Instalando Amazon AWS CLI
2210 Enviando Docker Images Para a Amazon
2211 Criando uma Task Definition
2212 Criando o Serviço
2213 Acessando uma Instância EC2 via SSH e Conferindo os Logs da Nossa Aplicação
2214 Alterando o Dockerfile e Docker-Compose
2215 Reenviando a Imagem e Testando as Alterações
2216 Conclusão da Seção - Implantação na Amazon AWS

Integração Contínua na Amazon AWS com o Travis CI

2301 Apresentação da Seção - Integração Contínua na Amazon AWS com o Travis CI
2302 Automatizando o Processo de Deploy
2303 Integração do Travis CI com a Amazon ECR
2304 Adicionando o Suporte a Integração Contínua com ECS Deploy
2305 Ajustando Nosso Serviço e Nossa Task Definition para Integração Contínua
2306 Ajustando as Permissões do Usuário IAM TRAVIS_CI
2307 Ajustando o Nosso serviço e Testando o Deploy Contínuo
2308 Conclusão da Seção - Integração Contínua na Amazon AWS com o Travis CI

Conclusão

2401 Conclusão

Screenshots

REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker - Screenshot_01REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker - Screenshot_02REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker - Screenshot_03REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker - Screenshot_04

Reviews

Tiago
November 9, 2023
Olá. Nao encontrei outro espaço para comentários sobre coisas específicas. Então envio aqui. Em alguns momentos do vídeo o instrutor recorre á definições de outras fontes amplamente aceitas sobre algum tema. Em uma definições de webservice, por exemplo, na aula 4, o instrutor recorre à definição da w3c e após expoe sua definição pessoal. Acho isso MUITO importante para manter a luz de outras definições importantes que giram ao entorno do tema principal e que nas exposições mais simplificadas, como costumam ser as didáticas mais práticas, estes outros satélites do temão podem ficar de fora, mesmo sendo de grande importancia para o entendimento do tema. Usando o exemplo da aula sobre webservice, a opniao mais didática do instrutor nao cita o baixo acoplamento, e também resolução de problemas complexos. Este último, só para validar o que escrevo, é natural que pelas características dos microserviços/webservice(pontual nas requisições e respostas, modulares, ...) pareçam que sirvam basicamente para validar coisas simples. Daí a importancia em citar a resolução de altas complexidades. Enfim... só para comentar e dizer que torço para que os cursos exponham os conceitos também mais "burocráticos", para usar as acertadas palavras do instrutor. Grande abraço, caso isto um dia venha a parar em algum leitor. Desejo-lhes grande sucesso e felicidade (sobretudo nas coisas simples e verdadeiras = )
Suelen
November 4, 2023
Curso excelente, superou as expectativas, muito bem detalhadas as informações e com bastante prática.
Douglas
October 27, 2023
O instrutor é claramente um profissional experiente e que sabe o que está fazendo, mas a didática em certos momentos deixou a desejar. Na minha visão o conteúdo ficou extenso muito além do necessário, chegando a ficar cansativo, além de que em certos momentos, enquanto o instrutor digitava, ele ia falando os nomes de classes do Spring como se tivesse apenas lendo de outro lugar, em vez de explicar exatamente como ele achou aquela classe e pra que ela serve.
Uilton
October 24, 2023
Bastante informação, e bem explicado, como estou fazendo em 2023 já tem algumas atualização, mas nada que pequenas pesquisam não resolvam, agradeço ao professor por ter reunido e condensado todo esse conhecimento e estar repassando a nós.
valmyr
October 24, 2023
Eu estou na parte de configurações, que é uma parte relativamente simples, não tem como avaliar muito, mas até agora está indo tudo bem
Thais
October 21, 2023
Ele podia ler menos e explicar sempre com as palavras dele, porque a leitura nós podemos fazer. O conhecimento dele é o que queremos ver. Fora isso, está muito bom!
Gusta
July 13, 2023
Curso muito completo e o com bastante suporte, didática é incrível, eu precisava aprender REST para entender conceitos de Spring Boot, e aplicar, o curso abordou tanto conceitos do REST/RESTful quanto do Spring, muito bom mesmo!
Edson
June 3, 2023
Esta fase ainda é bem inicial, mas até o momento o curso está muito bom. O instrutor parece dominar muito bem o conteúdo.
Carlos
May 22, 2023
Gostei muito do curso pelo fato de o professor abordar a parte teórica do que está ensinando a fazer. Acredito que para um bom desenvolvedor é necessário não apenas saber fazer, mas saber o que está fazendo e porque fazer de tal forma.
Guilherme
May 16, 2023
curso muito bom, eu tava perdido na parte de testes, mas eu tinha pulado um modulo sem querer e perdi as explicações
Renilson
May 16, 2023
Primeiramente gostaria de iniciar esta classificação já pedindo desculpas ao professor, pois, não é de minha intenção o atingir ou querer julgar negativamente o trabalho aqui por ele despenhado. Estou no começo do curso mas creio que todo o resto será assim pelo que tenho visto desde então. Sei que preparar aulas não deve ser nada fácil, sei também que houve todo um trabalho para atualizar e reestruturar o curso, tudo isso é extremamente trabalhoso e desgastante. Estou iniciando no universo de Java e Spring Boot, e como intermediário na programação em geral eu preciso deixar claro que, o curso apesar de começar bem "básico" há alguns pontos os quais iniciantes que não se atentarem a pesquisar (o que é mais do que óbvio que sempre deve ser feito em qualquer estudo/curso) ele não vai entender. Mas, espera-se que ao menos tenham alguma breve explicação para que se compreenda o porquê de estar fazendo aquilo que está fazendo. É como li em algumas classificações já realizadas por outros alunos, há uma pegada meio "robótica" do professor quase que como se estivesse utilizando algum script. E tudo bem ler algo enquanto passa a aula, não deve ser nada fácil tirar tudo da cabeça, mas acontece que em alguns momentos acaba ficando extremamente vago o porquê de se estar fazendo o que está fazendo. Um exemplo prático seria como em alguns momentos em que o professor utilizou alguns métodos para realizar determinada ação mas não ficou nada claro o que ele quis fazer no código. Dá pra se ter uma ideia, mas, o que se espera é que ao menos tenha uma explicação do tipo "Agora utilizaremos o HttpStatus.INTERNAL_SERVER_ERROR porque ele faz isto, isto e isto. Desta maneira assim, então, faz sentido que utilizemos ele". Fora que seria bem melhor para o público que se utilizasse algumas outras demonstrações mais usuais do que cálculos matemáticos em uma URL, até mesmo para um inicante, visto que isto é quase que desútil quando comparado ao que enfrentamos de fato no mercado de trabalho. Ótimos projetos relativamente simples seriam como por exemplo, criar uma tela de Login ou criar uma API que obtenha determinado objeto/valor e exiba para o cliente. Bom, é perceptível o tanto que o professor se desdobra para melhorar o curso. Esta minha classificação é mais como uma crítica construtiva mesmo para que caso venha atualizar posteriormente, tenha ao menos alguns insights. Sucesso!
Patrícia
April 21, 2023
Nem comecei direito mas já afirmo que está acima da média. Professor entende do assunto, passa suas experiências pessoais (o que não tem preço) e detalha o suficiente sobre cada tópico (deixa links para quem quiser se aprofundar ainda mais sobre o assunto).
Renato
April 18, 2023
Ele ensina coisa bem atual pra época que peguei (janeiro de 2023), e ele também ensina o que a gente precisa correr atrás. É um curso curto e condensado pro q ele propõe, mas acredito que o maior objetivo o curso é mostrar o básico e sobre o que devemos buscar. Dou 4 estrelas porque algumas aulas que mudou pouca coisa das versões mais novas do Spring ele não avisa as mudanças na hora, só algumas aulas depois ele faz uma recapitulação do que mudou avisando. O problema é que algumas vezes no curso já fiquei travado achando que é algo errado que fiz quando era apenas a versão. Lado bom é que o professor responde comentários muito rápido e tenta solucionar, então normalmente já no mesmo dia ou no máximo dia seguinte ele já responde. Recomendo o curso, já comprei outro curso de outra pessoa sobre o mesmo assunto e me arrependi, era extremamente ultrapassado, já esse aqui não, tá condizente com o que as empresas esperam e o que está sendo usado atualmente.
Joao
February 8, 2023
Estou com problemas nos testes de integração e está um tempo sem retorno. Estou seguindo o curso, mas se tornou um padrão antigo. Estou feliz pelo aprendizado!
Danilo
September 24, 2022
Fala Leandro, blz? Parabéns pelo curso, abordou os melhores temas do Spring. Show de bola, aulas objetivas e fluidas. Recomendado :)

Charts

Price

REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker - Price chart

Rating

REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker - Ratings chart

Enrollment distribution

REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker - Distribution chart
2178262
udemy ID
1/26/2019
course created date
11/20/2019
course indexed date
Bot
course submited by