Curso Spring Boot Building RESTful Web Services

  • DevOps | CI | CD | Kubernetes | Web3

Curso Spring Boot Building RESTful Web Services

24 horas
Visão Geral

Curso Spring Boot Building RESTful Web Services. Este curso prático e abrangente é projetado para desenvolvedores Java, engenheiros de backend e arquitetos de software que desejam dominar a construção de RESTful Web Services eficientes e robustos usando o framework Spring Boot. Do ponto de vista técnico, você mergulhará nos princípios do design RESTful, entenderá como o Spring Boot simplifica o desenvolvimento de APIs, e aprenderá a criar endpoints HTTP que interagem com dados. Cobriremos tópicos cruciais como manipulação de dados JSON/XML, validação de requisições, tratamento de exceções global, versionamento de API, paginação e ordenação. Além disso, exploraremos a integração com bancos de dados relacionais (JPA/Hibernate) e não relacionais (NoSQL), e as melhores práticas para testar e documentar suas APIs. Ao final, os participantes terão a capacidade de desenvolver APIs escaláveis, seguras (introdução à segurança) e de alta performance.

Curso Spring Boot Building RESTful Web Services, a capacidade de projetar e implementar APIs RESTful de qualidade é uma das habilidades mais valorizadas no mercado de desenvolvimento de software. APIs REST são a espinha dorsal de microsserviços, aplicações móveis, SPAs (Single Page Applications) e integrações entre sistemas. Dominar essa habilidade significa que os profissionais podem acelerar o desenvolvimento de produtos, facilitar a integração de sistemas e criar plataformas escaláveis que atendam às crescentes demandas do mercado digital. Isso se traduz em maior agilidade nos negócios, redução de custos de integração e uma base tecnológica mais resiliente e inovadora. Profissionais com essa expertise são altamente procurados, pois são cruciais para a transformação digital das empresas.

Objetivo

Ao final do Curso Spring Boot Building RESTful Web Services, você será capaz de:

  • Compreender e aplicar os princípios e melhores práticas de design RESTful.
  • Criar projetos Spring Boot para desenvolver APIs REST.
  • Definir endpoints HTTP (GET, POST, PUT, DELETE) e mapeá-los para operações CRUD.
  • Manipular dados JSON e XML em requisições e respostas.
  • Implementar validação de dados para garantir a integridade das requisições.
  • Gerenciar tratamento de exceções de forma centralizada e padronizada.
  • Realizar persistência de dados utilizando Spring Data JPA com bancos de dados relacionais.
  • Adicionar versionamento, paginação e ordenação às suas APIs.
  • Escrever testes de unidade e integração para APIs REST.
  • Documentar APIs utilizando SpringDoc OpenAPI (Swagger UI).
  • Aplicar os princípios de segurança básica em APIs RESTful.
Publico Alvo
  • Desenvolvedores Java: Que desejam aprender ou aprimorar a criação de APIs REST com Spring Boot.
  • Engenheiros de Backend: Responsáveis por construir a lógica de negócios e exposição de dados via APIs.
  • Arquitetos de Software: Para entender e aplicar os princípios de design REST em soluções Spring Boot.
  • Estudantes de Ciência da Computação/Engenharia de Software: Buscando habilidades práticas para o mercado de trabalho.
Pre-Requisitos
  • Conhecimento sólido de Java: Entendimento de classes, objetos, interfaces, coleções, lambdas.
  • Conhecimento básico de Spring Framework/Spring Boot: Familiaridade com anotações (@Autowired, @Component, @Service, @Repository), injeção de dependências.
  • Noções básicas de HTTP (métodos, códigos de status, headers).
  • Familiaridade com Maven ou Gradle.
  • (Desejável) Noções básicas de SQL e bancos de dados relacionais.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico

Módulo 1: Fundamentos de REST e Configuração Inicial (4 horas)

  • 1.1. Introdução a REST e Web Services:
    • O que são Web Services e sua evolução.
    • Princípios RESTful: Stateless, Client-Server, Cacheable, Layered System, Uniform Interface.
    • Recursos, URIs, Métodos HTTP (GET, POST, PUT, DELETE, PATCH).
    • Códigos de Status HTTP (2xx, 4xx, 5xx).
  • 1.2. Configurando um Projeto Spring Boot para REST:
    • Usando Spring Initializr para criar um projeto.
    • Dependências essenciais (spring-boot-starter-web, spring-boot-starter-data-jpa, h2).
    • Estrutura básica de um projeto Spring Boot REST.
  • 1.3. Primeiro Endpoint RESTful:
    • Criando um RestController.
    • Anotações @RequestMapping, @GetMapping, @PostMapping.
    • Parâmetros de Path (@PathVariable) e de Query (@RequestParam).
    • Hands-on: Criar um endpoint GET /hello e um endpoint GET /greet/{name}.
  • 1.4. Manipulação de Dados JSON e XML:
    • Spring Boot e Jackson (JSON).
    • Opcional: Suporte a XML com jackson-dataformat-xml.
    • Hands-on: Criar um POST endpoint que recebe um objeto JSON no corpo da requisição e o retorna.
  • Prática: Configurar um projeto Spring Boot. Criar diversos endpoints GET e POST simples para receber e retornar dados básicos. Testar com Postman.

Módulo 2: Modelagem de Dados e Persistência com JPA (5 horas)

  • 2.1. Modelagem de Dados para APIs REST:
    • Entidades de Domínio e DTOs (Data Transfer Objects).
    • Mapeamento entre Entidades e DTOs.
  • 2.2. Introdução ao Spring Data JPA:
    • O que é JPA e Hibernate.
    • @Entity, @Table, @Id, @GeneratedValue.
    • @Repository e JpaRepository.
  • 2.3. Operações CRUD Completas:
    • Criando a camada de serviço (@Service).
    • Implementando endpoints GET (todos, por ID), POST, PUT, DELETE.
    • Hands-on: Construir uma API RESTful completa para gerenciar um recurso (ex: Product, User, Book) com operações CRUD e persistência em banco de dados H2.
  • 2.4. Mapeamento de Relacionamentos:
    • @OneToMany, @ManyToOne, @ManyToMany.
    • Evitando problemas de serialização com relacionamentos.
    • Hands-on: Estender a API para incluir um relacionamento (ex: Order com Product).
  • Prática: Modelar entidades e DTOs. Implementar a camada de persistência com Spring Data JPA. Desenvolver todos os endpoints CRUD para um recurso.

Módulo 3: Validação, Tratamento de Exceções e Mensagens (5 horas)

  • 3.1. Validação de Requisições com Bean Validation:
    • @Valid e anotações de validação (@NotNull, @Size, @Min, @Max, @Email).
    • Retornos de erro padrão do Spring.
    • Hands-on: Adicionar validações aos DTOs de entrada e testar com requisições inválidas.
  • 3.2. Tratamento Centralizado de Exceções:
    • @ControllerAdvice e @ExceptionHandler.
    • Retornando respostas de erro padronizadas (Problem Details).
    • Hands-on: Criar um ControllerAdvice para capturar exceções comuns (ex: NotFoundException, IllegalArgumentException) e retornar respostas HTTP apropriadas.
  • 3.3. Mensagens Personalizadas de Validação:
    • Configurando messages.properties para mensagens de erro.
    • Internacionalização (i18n) básica para mensagens.
  • 3.4. DTOs de Saída e Projeções:
    • Controlando os dados retornados nas respostas.
    • Hands-on: Criar DTOs específicos para respostas, formatando os dados conforme a necessidade do cliente.
  • Prática: Implementar validação robusta. Desenvolver um tratamento global de exceções. Personalizar mensagens de validação.

Módulo 4: Boas Práticas: Versionamento, Paginação, Ordenação e Testes (6 horas)

  • 4.1. Versionamento de API REST:
    • Estratégias de versionamento: URI, Header, Query Parameter.
    • Vantagens e desvantagens de cada uma.
    • Hands-on: Implementar versionamento via URI para um endpoint.
  • 4.2. Paginação e Ordenação:
    • Pageable e Page do Spring Data JPA.
    • Recebendo parâmetros de paginação e ordenação nas requisições.
    • Hands-on: Adicionar suporte a paginação e ordenação aos endpoints GET all.
  • 4.3. Testes de Unidade e Integração para APIs REST:
    • @WebMvcTest para testes de controlador (sem carregar o contexto JPA).
    • @SpringBootTest para testes de integração completos.
    • MockMvc e TestRestTemplate para simular requisições HTTP.
    • Hands-on: Escrever testes de unidade para a camada de serviço e testes de integração para os controladores REST.
  • 4.4. Documentação de API com SpringDoc OpenAPI (Swagger UI):
    • Adicionando a dependência springdoc-openapi-starter-webmvc-ui.
    • Anotações @Operation, @ApiResponse, @Parameter.
    • Acessando a interface Swagger UI.
    • Hands-on: Documentar os principais endpoints da sua API e explorar a Swagger UI.
  • Prática: Implementar versionamento, paginação e ordenação. Escrever testes robustos para as APIs. Gerar documentação interativa com Swagger UI.

Módulo 5: Segurança Básica, HATEOAS e Próximos Passos (4 horas)

  • 5.1. Introdução à Segurança em APIs REST:
    • Ameaças comuns a APIs (autenticação fraca, injeção, acesso não autorizado).
    • Visão geral do Spring Security para autenticação e autorização básica (HTTP Basic, sem detalhar JWT ou OAuth).
    • Hands-on: Adicionar spring-boot-starter-security e configurar uma autenticação HTTP Basic simples para a API.
  • 5.2. HATEOAS (Hypermedia as the Engine of Application State) (Conceitual):
    • O que é HATEOAS e por que é importante para APIs REST de nível mais alto.
    • Uso do Spring HATEOAS (visão geral).
  • 5.3. Melhores Práticas e Considerações de Design:
    • Idempotência.
    • Controle de Cache.
    • Tratamento de status 404 (Not Found) vs. 403 (Forbidden).
    • Boas práticas de naming para URIs.
  • 5.4. Próximos Passos:
    • Microservices com Spring Cloud.
    • Autenticação avançada (JWT, OAuth 2.0).
    • Cloud Deployment.
    • Outras tecnologias de persistência (NoSQL).
  • Prática: Proteger a API com autenticação HTTP Basic. Discutir casos de uso para HATEOAS e outras melhores práticas.
TENHO INTERESSE

Cursos Relacionados

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Ansible Overview of Ansible architecture

16h

Curso Data Governance Engineering

24 horas

Curso ISO/IEC 20000-1 Certification Service Management

24 horas

Curso Automotive Cloud and Connected Vehicle Security

24 horas

Curso FinOps for AI Practitioners

16 horas