Ignição
Spring Rest

Você vai aprender

Tudo que precisa pra iniciar criar seu primeiro projeto com Spring REST, colocar em seu portfólio e ter segurança em entrevistas técnicas.

Você vai aprender

Do básico ao super avançado, você vai mergulhar na linguagem Java usando as boas práticas e entrará para a elite de programadores Java no Brasil.

Você vai aprender os fundamentos de REST definitivamente, entender o que é esse estilo arquitetural e as constraints do REST.

 

Vai entender como funciona o protocolo HTTP e como isso se encaixa com a modelagem de REST APIs, como os principais códigos de status do HTTP, os principais verbos, idempotência, etc.


Vai desenvolver serviços com diversos métodos HTTP, inclusive vai entender e aprender a implementar Content Negotiation.

Você vai aprender a criar, configurar e desenvolver uma API do zero e passo a passo, usando alguns dos principais projetos do ecossistema Spring, como Spring Boot e Spring MVC.

 

Vai aprender a criar projetos com Spring Initializr e importar na IDE, além de entender como o Apache Maven funciona e como Spring Boot tira proveito disso para configurar seu projeto “automagicamente”.

 

E ainda, vai aprender o que é, como gerar e executar um FatJAR gerado pelo Spring Boot.

Você vai aprender como fazer mapeamento de entidades e relacionamentos com Jakarta Persistence (JPA).

 

Ainda, vai ver como criar e evoluir o schema do banco de dados com Flyway e usar Lombok nas classes para reduzir código boilerplate.

Você vai conhecer os principais super poderes do Spring Data JPA (SDJ), como criação de repositórios super inteligentes e criação de query methods com filtros.

Você vai aprender a fazer validações de entradas da sua API de forma profissional, adicionando anotações do Jakarta Bean Validation no seu modelo.

 

Vai aprender também a customizar mensagens de validação, criar grupos de validações e validar associações em cascata.

Vamos usar a IDE que é considerada como a melhor do mercado pelos desenvolvedores Java mais experientes: a IntelliJ IDEA.

 

Sem problemas se você quiser usar outra IDE, mas a IntelliJ IDEA te trará um nível de produtividade muito alto, por isso recomendamos que você experimente.

Muitos desenvolvedores de APIs não se preocupam ou até desconhecem algumas boas práticas de mercado, por isso um dos objetivos deste treinamento é te ensinar a criar a sua primeira REST API já usando as principais boas práticas.

 

Você vai aprender a trabalhar com ISO 8601 para troca de dados que envolvam data/hora.

 

Vai aprender também as boas práticas para nomeação de URIs de recursos e como modelar conceitos abstratos e ações não-CRUD na sua API e recursos de sub-coleção.

 

Discutiremos sobre as diferenças entre usar as entidades como modelo de representação dos recursos ou DTOs, para desacoplar mais os controllers, além de implementar as duas formas.

 

Usaremos o ModelMapper para fazer Object Mapping e converter DTOs em entidades e vice-versa.

 

Vamos implementar e organizar as nossas classes usando alguns conceitos e padrões do DDD (Domain-Driven Design).

 

Você vai aprender diversas dessas boas práticas e com certeza seu código ficará em um nível de qualidade muito similar aos melhores programadores do mercado que já possuem muitos anos de experiência.

 

As pessoas não vão acreditar que você acabou de aprender quando verem o seu código! 😂

Tratar exceptions é muito importante, mas tão importante quanto isso, é devolver como resposta o código de status HTTP adequado e uma representação padrão do problema. Infelizmente, pouca gente faz isso direito.

 

Mas nesse treinamento você vai aprender a tratar as exceptions e devolver uma resposta adequada e consistente (padronizada) para o consumidor da API.

 

Você vai aprender a usar a anotação @ResponseStatus, tratar exceções em nível do controlador com @ExceptionHandler, tratar exceções globalmente com @ExceptionHandler, @RestControllerAdvice e ResponseEntityExceptionHandler.

 

Ainda, você vai aprender o que é e como usar o suporte do Spring à RFC 7807 (Problem Details for HTTP APIs).

Java 17 desde o início

Vamos usar o Java 17, que é a última versão LTS do Java, ou seja, é a versão mais recomendada para usar em projetos Java atualmente.

Mas o legal é que, se você precisar trabalhar com Java 11, que é a versão LTS anterior, você conseguirá facilmente, porque o instrutor cita nas aulas quando está usando um recurso mais recente.

Última versão do Spring

No Ignição Spring REST, vamos usar o Spring Boot 3.1.

Você vai aprender como criar aplicações Spring autossuficientes, utilizando a última versão, que é a mais recomendada para usar em projetos atualmente.

Conteúdo Programático

1.1. Boas vindas e as oportunidades do mercado

1.2. Quem é você? Quem sou eu?

1.3. Alguns combinados antes de continuar

1.4. O que é uma API?

1.5. O que é REST?

1.6. Conhecendo o protocolo HTTP

1.7. Entendendo os Recursos REST

1.8. Identificando recursos REST

1.9. Por que Spring?

1.10. Conhecendo o ecossistema de projetos Spring

1.11. Estudos de caso

2.1. Preparando o ambiente de desenvolvimento

2.2. Conhecendo o modelo de domínio do projeto

2.3. Alternativas para criar projetos Spring Boot

2.4. Criando o projeto com Spring Initializr

2.5. Entendendo a estrutura do projeto Maven

2.6. Gerando o FatJAR e iniciando a aplicação

2.7. Implementando e testando a requisição de um recurso

2.8. Implementando uma Collection Resource

2.9. Configurando e usando o Lombok

2.10. Métodos e códigos de status HTTP

2.11. Content Negotiation

2.12. Turbinando a produtividade com DevTools

3.1. Configurando a conexão com o banco de dados no projeto

3.2. Conhecendo e adicionando o Flyway no projeto

3.3. Criando a primeira migration com Flyway

3.4. Conhecendo o Jakarta Persistence (JPA)

3.5. Mapeando entidades com Jakarta Persistence

3.6. Implementando uma consulta com JPQL

3.7. Conhecendo o Spring Data JPA (SDJ) e criando um repositório

3.8. Injetando e usando o repositório do SDJ

3.9. Implementando Query Methods no repositório

3.10. Implementando endpoint de busca de recurso

3.11. Implementando endpoint de inclusão de recurso

3.12. Implementando endpoint de atualização de recurso

3.13. Implementando endpoint de exclusão de recurso

4.1. Conhecendo e adicionando Jakarta Bean Validation no projeto

4.2. Validando entrada de dados com Jakarta Bean Validation

4.3. Implementando Domain Services

4.4. Implementando regra de negócio para restringir e-mails duplicados

4.5. Capturando exceções do controlador com @ExceptionHandler

4.6. Adicionando migration para criação da tabela de veículos

4.7. Criando e mapeando a entidade de veículo

4.8. Implementando os endpoints de consulta de veículos

4.9. Implementando o endpoint de inclusão de veículos

4.10. Implementando regras de negócio no cadastro de veículos

4.11. Protegendo propriedades somente-leitura

4.12. Validando em cascata

4.13. Validando com Validation Groups

5.1. Capturando exceções globais com @RestControllerAdvice

5.2. Usando a RFC 7807 (Problem Details for HTTP APIs)

5.3. Customizando as informações do ProblemDetail

5.4. Adicionando campos customizados no ProblemDetail

5.5. Customizando as mensagens de validação

5.6. Tratando exceções customizadas de forma global

5.7. Boas práticas para trabalhar com data/hora

5.8. Isolando o Domain Model do Representation Model

5.9. Criando o Representation Model do recurso de veículo

5.10. Transformando objetos com ModelMapper

5.11. Implementando assembler de Representation Model

5.12. Compondo objetos no Representation Model

5.13. Criando um Representation Model para entrada de dados

6.1. Criando e mapeando a entidade de autuação

6.2. Implementando serviço de autuação

6.3. Modelando sub-recursos

6.4. Implementando o endpoint de cadastro do recurso de autuação

6.5. Especializando a exceção de entidade não encontrada

6.6. Implementando recurso de coleção de autuações

6.7. Implementando regras de negócio de apreensão de veículo

6.8. Modelando ações não-CRUD

6.9. Implementando endpoints de ações não-CRUD

7.1. Traçando um plano

Suporte VIP

Se você tem uma pergunta, nós temos a resposta.​

Todas as perguntas enviadas pelos alunos são respondidas dentro de até 24h úteis.

Os tutores vão acompanhar você até que a dúvida seja completamente solucionada.

Os atendimentos são 100% personalizados e individuais.

Aprofunde-se nos estudos com auxílio de nossos tutores pelo período de 03 meses.

No suporte VIP da AlgaWorks, nossos tutores responderão todas as suas dúvidas sobre o curso e você também contará com ajuda para resolver possíveis erros que apareçam no desenvolvimento do projeto.

Veja um exemplo de resposta em vídeo do nosso Suporte VIP:

Certificado de
Conclusão

Vários de nossos alunos já relataram o prestígio que tiveram durante entrevistas de emprego por parte das empresas, quando souberam que são alunos da AlgaWorks.

E já recebemos mensagens de líderes técnicos indicando que dá preferência para candidatos que estudam com a gente também.

Ter um certificado da AlgaWorks não é um documento qualquer. É um indicador que você investe na sua carreira com treinamentos que realmente capacitam.

Quando você concluir 100% das aulas do treinamento, vai receber um certificado do curso em seu nome, com carga horária de 40 horas.

Perguntas frequentes

O Ignição Spring REST possui 12 horas e 20 minutos de videoaulas gravadas, totalizando 72 aulas e 40 horas de carga horária (tempo que constará no certificado).

Vamos usar o Java 17, que é a última versão LTS do Java, ou seja, é a versão mais recomendada para usar em projetos Java atualmente.

O ISR é um curso do básico ao intermediário em modelagem e desenvolvimento de REST APIs. A ideia desse curso é te preparar para desenvolver a sua primeira REST API com as boas práticas para você já começar a participar de entrevistas técnicas e ter um primeiro projeto no seu portfólio.

 

O ESR é, até onde sabemos, o curso mais completo e aprofundado do mercado sobre modelagem e desenvolvimento de REST APIs com Spring.

 

Resumindo: O ISR é um curso para você aprender mais rápido o essencial e o ESR é um curso para você aprofundar e se tornar um especialista.

O ISR é recomendado para:

 

  1. a) Quem já sabe pelo menos o básico da linguagem Java e quer aproveitar as oportunidades do mercado para desenvolvedores Spring REST.

 

  1. b) Quem já conhece um pouco de REST e Spring, mas ainda não conhece as principais boas práticas e não sente confiança no que está fazendo.

Apenas conhecer o básico da linguagem Java é suficiente, mas se você precisar de um reforço nisso, nós podemos te ajudar.

Vamos usar a IDE mais completa e mais usada no mercado: IntelliJ IDEA.

 

Vamos usar a Community Edition, que é gratuita e atende muito bem estudantes e profissionais.

Não. O ISR é um curso de back-end.

 

No mercado de trabalho, existem desenvolvedores que “só” trabalham com back-end e são muito bem remunerados por isso.

Com certeza que sim. Inclusive, esse é um dos maiores diferenciais do ISR.

 

Você vai aprender os fundamentos sólidos de REST, além de alguns dos principais projetos do ecossistema Spring, como Spring MVC, Spring Boot e Spring Data JPA.

 

Além disso, vai aprender a modelar APIs usando boas práticas e padrões de mercado, como a RFC 7807 (Problem Details for HTTP APIs) e ISO 8601.

 

Sem falar que vai aprender a evoluir o schema do seu banco de dados usando Flyway. Ou seja, as práticas profissionais estarão presentes durante todo o curso.

Vamos usar MySQL Server, mas como usaremos Jakarta Persistence (JPA), é praticamente indiferente o SGBD que você for usar, porque o JPA abstrai a maior parte das diferenças. 

 

Mesmo assim, recomendamos que você use MySQL nas aulas para evitar distrações. Depois que finalizar o curso, você conseguirá migrar para outro banco de dados relacional com facilidade, se quiser.

Sim, 100% das aulas do Ignicão Spring REST já estão gravadas e você receberá acesso imediato a todas as aulas após a confirmação da sua matrícula.

Com certeza! Todas as aulas práticas acompanham o código-fonte para você baixar e rodar no seu computador.

Vamos desenvolver uma REST API de um departamento de trânsito de alguma cidade, para gerenciar os veículos regulares e apreendidos, as autuações e os proprietários.

Nesse projeto você terá a oportunidade de aprender a desenvolver não apenas CRUDs, mas também endpoints que executam processos de negócio não-CRUD e sub-recursos.

Java 20 é uma Feature Release (FR). Isso quer dizer que em setembro de 2023 vai deixar de ter atualizações gratuitas.

 

Não é recomendado usar FR em produção, exceto se você puder atualizar a versão do Java a cada 6 meses (e por isso as empresas não costumam usar FR em produção).

 

Java 17 é a última versão LTS (Long-term Support), o que significa que possui suporte de longo prazo, ou seja, terá suporte/atualizações até no mínimo o ano de 2027.

 

A próxima versão LTS será o Java 21, que está prevista para ser lançada em setembro de 2023. Quando isso acontecer, é possível que a gente valide o projeto com essa versão e provavelmente não terá nenhuma alteração no código-fonte.

Sobre o instrutor

Thiago Faria

Fundador e instrutor da AlgaWorks, escola referência em desenvolvimento Java e front-end no Brasil, com mais de 13.000 clientes.

Foi palestrante da maior conferência de Java do mundo (JavaOne San Francisco).

Desenvolvedor do primeiro jogo de truco online e multiplayer, que ficou bem famoso na década de 90.

Autor de diversos livros e cursos de Java e front-end, acumulando mais de 150.000 leitores e alunos.

Programador apaixonado há mais de 27 anos (desde os 14 anos de idade).

AlgaWorks Ltda
CNPJ: 10.687.566/0001-97

Termos de usoPolítica de privacidadeFale conosco