Atividade Prática: Desenvolvimento de uma API de Restaurante com Spring Boot

Descrição:

Nesta atividade, vocês deverão desenvolver uma API de um restaurante utilizando Spring Boot. A API deverá conter duas classes principais: Prato e Restaurante. O restaurante deverá oferecer pratos veganos, vegetarianos ou tradicionais, utilizando um enum para representar esses tipos. Vocês também deverão usar classes records para receber os dados da API.

Requisitos:

  1. Criação das Classes:
    • Classe Prato:
      • Atributos:
        • id (Long)
        • nome (String)
        • descricao (String)
        • preco (Double)
        • tipo (TipoPrato – enum)
    • Classe Restaurante:
      • Atributos:
        • id (Long)
        • nome (String)
        • endereco (String)
        • listaDePratos (List<Long>) – Lista de IDs dos pratos, inicialmente vazia
  2. Enum TipoPrato:
    • Valores:
      • VEGANO
      • VEGETARIANO
      • TRADICIONAL
  3. Classes Record:
    • PratoDto:
      • Atributos:
        • nome (String)
        • descricao (String)
        • preco (Double)
        • tipo (TipoPrato)
    • RestauranteDto:
      • Atributos:
        • nome (String)
        • endereco (String)
    • AdicionarPratoDto:
      • Atributos:
        • restauranteId (Long)
        • nome (String)
        • descricao (String)
        • preco (Double)
        • tipo (TipoPrato)
  4. Funcionalidades da API:
    • CRUD de Pratos:
      • Os pratos serão criados diretamente ao serem adicionados aos restaurantes, não haverá endpoints separados para criação de pratos.
    • CRUD de Restaurantes:
      • Criar, ler, atualizar e deletar restaurantes.
      • Associar pratos aos restaurantes por meio de um endpoint específico.
  5. Estrutura do Projeto:
    • Utilize o Spring Boot para configurar a aplicação.
    • Não será utilizado um banco de dados; use estruturas de dados (List e Map) para armazenar os dados em memória.
    • Implemente os serviços, controladores e repositórios necessários utilizando listas em memória para persistência dos dados.
  6. Endpoints:
    • Restaurantes:
      • POST /restaurantes – Criar o restaurante.
      • PUT /restaurantes – Atualizar o restaurante.
      • DELETE /restaurantes – Deletar o restaurante.
      • POST /restaurantes/pratos – Adicionar um prato a um restaurante.
      • GET /restaurantes/pratos – Listar todos os pratos do restaurantee.
      • GET /restaurantes/prato/{idPrato} – Obter detalhes de um prato específico.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima