REST API's RESTFul do 0 à AWS c. Spring Boot 3 Java e Docker
What you'll 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 - [Minicurso de Kubernetes - K8s] Entendendo Conceitos Chave do Kubernetes
- EXTRA - [Minicruso de React JS] Como Consumir a API com ReactJS
- EXTRA - Como Integrar API's RESTful à API do ChatGPT
Requirements
- Noções básicas de Orientação a Objetos
- Conhecimentos básicos de SQL e qualquer banco de dados relacional
- Conhecimentos básicos de Java
- Noções básicas de Request e Response do HTTP
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/08/2024] Além de todo o conteúdo prático do curso, foi adicionada uma nova seção ensinando tudo o que você precisa saber pra começar com Kubernetes!!!
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á!
Who this course is for:
- Desenvolvedores em início de carreira e que precisam aprender a desenvolver uma API REST/RESFul do zero
- Esse curso é indicado para desenvolvedores e engenheiros de software
- Para desenvolvedores back-end com conhecimentos de ASP NET, Rails, Django, Node etc e desejam aprender como fazer o que sabem mas com outra tecnologia
- Desenvolvedores front-end que desejam se tornar fullstack
- Quem já tentou outros tutoriais sobre Webservices REST/RESTful e descobriu que eles eram muito lentos, desatualizados e chatos!
Instructors
See my biography in English below.
Eu sou Leandro Costa, analista de sistemas e desenvolvedor, bacharel em Sistemas de Informação com pós-graduação em Engenharia de Software. Trabalho a mais de 11 anos como desenvolvedor back-end e sou um entusiasta apaixonado pela área. Em todos esses anos eu errei bastante, aprendi muito com esses erros. Por isso sei o que você precisa aprender e com o que não deve perder seu tempo para ter uma carreira bem-sucedida na área de tecnologia.
Comecei minha carreira com manutenção de computadores, impressoras e monitores - arriscava fuçar em tudo que tinha um chip dentro. Comecei a programar em Delphi e logo depois iniciei a faculdade onde me dediquei à aprender Java e GNU/Linux. Como desenvolvedor eu iniciei trabalhando com Delphi, depois Java com JSF e Spring, Groovy, depois AngularJS e me apaixonei por JavaScript. Atualmente trabalho com .NET Core e C# e estou gostando bastante principalmente depois que a plataforma virou Open Source. Já trabalhei em diferentes tamanhos de projetos nacionais e internacionais, em setores como varejo, farmacêutico, atacadista, marketing, governo, ERP e fintechs. Participei de projetos Agile, "Fake Agile", Cascata, RUP e claro me deparei com muito Extremme Go Horse e confesso que tive que fazer algumas gambiarras ao longo da carreira.
Nos diferentes projetos em que trabalhei utilizei diversas tecnologias como Java, Spring, Hibernate, JSF, C#, Entity Framework, ASP.NET, Groovy, Grails, JavaScript, AngularJS, Docker, Docker Compose, MySQL, Postgrees, SQL Server, Oracle dentre outras.
Atualmente tenho como objetivo ajudar você através de treinamentos eficientes e práticos na área de desenvolvimento, Agile, TDD, Integração Contínua, Docker, Clean Code e API's (SOA), especialmente RESTful API's. Sou apaixonado por transmitir conhecimentos e contribuir para que as pessoas se desenvolvam e alcancem o melhor de si.
E me sinto muito gratificado em fazer parte da jornada de aprendizado da vida de muitos alunos e por essa razão eu estou empenhando em dar o meu melhor entregando conteúdos cada vez melhores e mais relevantes.
English Biography
I am Leandro Costa, systems analyst and developer, Bachelor of Information Systems with a postgraduate degree in Software Engineering. I've been working for more than eight years as a back-end developer, and I'm a passionate enthusiast for the area. In all these years, I made a lot of mistakes and learned a lot from these mistakes. That's why I know exactly what you need to learn and what you shouldn't waste your time on to have a successful career in the field of technology.
I started my career with the maintenance of computers, printers, and monitors - I risked going through everything that had a chip inside. I started programming in Delphi, and soon after, I started college, where I dedicated myself to learning Java and GNU / Linux. As a developer, I started working with Delphi, then Java with JSF and Spring, Groovy, then AngularJS, and fell in love with JavaScript. I currently work with .NET Core and C #, and I am enjoying it a lot, mainly after the platform became Open Source. I have worked in different sizes of national and international projects in sectors such as retail, pharmaceutical, wholesaler, marketing, government, ERP, and fintech. I participated in projects Agile, "Fake Agile," Waterfall, RUP, and of course, I came across a lot of Extreme go Horse, and I confess that I had to do some "jerry-rigs" throughout my career.
In the different projects I worked on, I used several technologies such as Java, Spring, Hibernate, JSF, C #, Entity Framework, ASP.NET, Groovy, Grails, JavaScript, AngularJS, Docker, Docker Compose, MySQL, Postgres, SQL Server, Oracle, Amazon AWS, Microsoft Azure among others.
Currently, I am collaborating in the learning of people who seek knowledge through efficient and practical training in the area of development, Agile, TDD, Continuous Integration, Docker, Clean Code, and APIs (SOA), especially RESTfull APIs. I am passionate about imparting knowledge and helping people to develop and achieve the best of themselves.
And I feel very gratified to be part of the learning journey of many students' lives, and for that reason, I am striving to give my best by delivering better and more relevant content.
A Erudio Training é uma Escola de treinamentos online de programação criada por profissionais experientes no mercado que se dedicam ao desenvolvimento, gestão ágil de times, testes automatizados, arquitetura e design de software e todo o ciclo de vida do desenvolvimento.
A Erudio Training "nasceu" em 2011, originalmente como um blog sobre as experiências de Leandro Costa no mercado de trabalho. Nesse blog ele abordava temas como desenvolvimento e Agile em uma época em que ninguém falava de Scrum ou outros frameworks Ágeis. Nesse mesmo ano surgiu o canal no Youtube que ia na mesma linha. Nos anos que se seguiram Leandro Costa conciliou o trabalho de analista desenvolvedor e a Erudio Training que naquele momento era apenas um hobby que apenas consumia dinheiro e tempo. Em 2018 houve a virada de chave e a Erudio Training começou a oferecer consultoria e treinamentos em TI.
Na Erudio Training, nós planejamos cuidadosamente cada aula para fornecer informações valiosas com clareza e estrutura. Ao assistir a um vídeo Erudio Training, você perceberá rapidamente o que nos diferencia de outros criadores de cursos. Acreditamos que a melhor forma de aprender é praticando e o nosso objetivo é levá-lo do Zero ao Desenvolvedor Profissional nos assuntos que dominamos. Esperamos que você goste de nossos treinamentos!
Seja bem-vindo ao perfil do Especialista em Atendimento e Apoio ao Aluno da Erudio Training na Udemy!
Como membro dedicado do time da Erudio Training, meu enfoque principal é assegurar o sucesso e a satisfação de nossos alunos ao longo de sua jornada de aprendizado.
Estou à disposição para oferecer auxílio personalizado, orientação e incentivo, ao mesmo tempo que promovo um ambiente positivo e colaborativo para todos os alunos da Erudio Training.
Seu crescimento profissional é nossa máxima prioridade, e estou empenhado em auxiliá-lo a se destacar em seus objetivos educacionais.