REST API's RESTFul from 0 to AWS with Spring Boot and Docker
What you'll learn
- 10% Theory and 90% Practice
- Developing a RESTFul API from absolute 0
- Best practices for developing API's
- Understand the theoretical foundation of REST
- How to work with Postman
- How to make RESTful requests using Postman
- Understand the RESTful Maturity Model
- Top REST Verbs
- Using parameters via query, path, header, and body
- API Pagination
- API Versioning
- Understand Media Types and Content Negotiation
- Upload files in your API
- Make download files available in your API
- You will learn in practice HATEOAS
- Document an API with Swagger
- SQL and Migrations Basics
- REST Authentication Techniques and Security with JWT
- How to use some design patterns
- Split application architecture into different layers
- Leverage AWS core services like RDS, EC2, IAM User and ECS
- Continuous Integration and Deploy involving Docker, Github, Travis CI, and Amazon AWS
- Deploy your API on AWS Cloud
- BONUS - Docker Basics
- BONUS - Docker Compose Basics
- BONUS - How to deploy the project in the cloud
Course content
- Preview02:56
- 00:01Course Repository
Requirements
- Basic concepts of Object Orientation
- Basic knowledge of SQL and any relational database
- Basic concepts of Java
- Basic concepts of HTTP Request and Response
Description
**** Come specialize in API development with the revolutionary Spring Boot framework that is a real fever today! *****
This course teaches the core fundamentals of APIs REST and RESTful Webservices both in theory (10%) and in practice (90%). This knowledge will be applied to the implementation of a RESTful API with SpringBoot 2.x and Java. We will start with a simple application that will gradually advance to more complex scenarios. We will cover HTTP notions, verbs/methods, parameter types, pagination, file upload and download, versioning, HATEOAS, Swagger, authentication, and security with JWT and Spring Security, etc.
We will add Docker support and deploy our API on an Amazon AWS EC2 instance manually. And to close the course with a golden key, we will implement a continuous integration pipeline involving Docker, Github, Travis CI, and an ECS Cluster on Amazon AWS. It will be amazing you simply commit your code and push to Github, Travis CI builds Docker Images and deploys it on Amazon "Automagically".
Finally, the main objective of the course is to serve as a starting point from which students can expand their knowledge of the subject and "walk with their legs."
Who this course is for:
- Early career developers who need to learn how to develop a REST/RESFul API from scratch
- Software developers and engineers
- For back-end developers with knowledge of ASP NET, Rails, Django, Node, etc. and want to learn how to do what they know but with other technology
- Front end developers who want to become full-stack
- Anyone who has tried other REST/RESTful Webservices tutorials and found that they were very slow, outdated, and boring!
Instructor
See my biography in English below.
Se alguma dessas frases parece familiar?
- "Eu quero TRABALHAR em uma GRANDE EMPRESA de TECNOLOGIA, mas TENHO pouca ou nenhuma EXPERIÊNCIA e quando mando currículos nunca me dão retorno!"
- "Como responder as perguntas CORRETAMENTE no processo seletivo?"
- "E se eu conseguir o trabalho e ficar VIAJANDO porque não saber o que fazer o que me pediram?"
- "O que REALMENTE é IMPORTANTE APRENDER, para que eu não desperdice meu tempo e DINHEIRO aprendendo coisas que nunca irei usar?"
Se sim, você veio ao lugar certo.
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 8 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 EXATAMENTE 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, Postgree, SQL Server, Oracle dentre outras.
Em 2012 tive o prazer de criar dois cursos gratuitos de Groovy e JSF no Youtube, são eles:
- Curso De JavaServer Faces (JSF) Do Zero À Nuvem
- Curso Básico de Grails
Recentemente publiquei um livro sobre engenharia de software em que detalho a evolução dos modelos de gestão do desenvolvimento de software. Entretanto os frameworks ágeis ganharam uma atenção especial principalmente o eXtreme Programming e o Scrum. Você pode conferir o resultado na Amazon, procurando pelo título:
- Engenharia de Software Essencial: Um guia rápido com foco em Agile
Atualmente tenho como objetivo ajudar você a CONSEGUIR o trabalho/estágio que você deseja ou dar um UP na sua CARREIRA. Colaborando no aprendizado de pessoas que buscam conhecimento 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 RESTfull 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.
Imagine conseguir:
- Poder escolher a empresa que quer estagiar e trabalhar
- Passar de forma tranquila por empresas e provas de seleção
- Começar a trabalhar na área antes de se formar
- Impressionar seu chefe e seu diretor e ser promovido
- Dar um UP na sua CARREIRA aprendendo uma NOVA TECONOLOGIA
Pode parecer difícil, mas para ter um CURRÍCULO FORA DE SÉRIE você precisa fazer os TREINAMENTOS CERTOS. Você não pode perder tempo com cursos ruins ou aprendendo coisas que não vai usar.
O objetivo aqui é te ensinar o que você precisa saber e sem enrolação, do básico ao avançado. Quando você aprende mais, você se destaca. E quando você se destaca, você começa a crescer na sua carreira.
Animado para começar? Então vamos lá!.
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.
In 2012 I had the pleasure of creating two free Groovy and JSF courses on Youtube (sorry only in portuguese), they are:
- Curso De JavaServer Faces (JSF) Do Zero À Nuvem
- Curso Básico de Grails
I recently published a book on software engineering in which I detail the evolution of software development management models. However, agile frameworks have gained special attention, mainly eXtreme Programming and Scrum. You can check the result on Amazon (sorry only in portuguese too) by searching for the title:
- Engenharia de Software Essencial: Um guia rápido com foco em Agile
Currently, I aim to help you GET the job/internship you want or give a UP in your CAREER. 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.