funcionario-graphql

Este repositório contém exemplos e tutoriais sobre como executar consultas GraphQL usando Java e Spring Boot. O objetivo é fornecer uma referência prática para desenvolvedores que desejam interagir com APIs GraphQL de maneira simples e direta a partir da linha de comando.

Stars
2
Committers
2

Feltex-graphql

Projeto de Gestão de Funcionários e Departamentos com GraphQL

Descrição do Projeto

Este projeto é um sistema CRUD em memória desenvolvido em Java 21 e Spring Boot, utilizando GraphQL para gerenciar funcionários e departamentos. Ele permite criar, ler, atualizar e deletar dados de funcionários e departamentos, proporcionando uma interface eficiente e flexível para interagir com os dados.

Funcionalidades

  • Criar Funcionário: Adicionar um novo funcionário ao sistema.
  • Listar Funcionários: Obter uma lista de todos os funcionários.
  • Atualizar Funcionário: Atualizar as informações de um funcionário existente.
  • Deletar Funcionário: Remover um funcionário do sistema.

Tecnologias Utilizadas

  • Java 21: Linguagem de programação utilizada para desenvolver a aplicação.
  • Spring Boot: Framework utilizado para facilitar o desenvolvimento de aplicações Java.
  • GraphQL: Linguagem de consulta para API, utilizada para interagir com os dados de forma eficiente.
  • HashMap: Banco de dados em memória utilizado para armazenar os dados temporariamente.

Pré-requisitos

  • Java 21
  • Maven 3.8.1 ou superior

Como Executar o Projeto

  1. Clone o repositório:
    git clone [email protected]:feltex/funcionario-graphql.git
    
  2. Navegue até o diretório do projeto:
    cd funcionario-graphql
    
  3. Compile o projeto utilizando Maven:
    mvn clean install
    
  4. Execute a aplicação:
    mvn spring-boot:run
    

A aplicação estará disponível em http://localhost:8080.

Endpoints GraphQL

  • /graphql: Endpoint principal para enviar queries e mutations.

Exemplos de Queries e Mutations

Consultar todos os funcionários

query {
  funcionarios {
    id
    nome
    departamento
  }
}

Adicionar um novo funcionário

mutation createFuncionario($departamento: Departamento, $nome: String) {
    criar(departamento: $departamento, nome: $nome) {
        id
        nome
        departamento
    }
}

Atualizar um funcionário existente

mutation atualizar($id: ID, $nome: String, $departamento: Departamento) {
    atualizar(id: $id, nome: $nome, departamento: $departamento) {
        id
        nome
        departamento
    }
}

Deletar um funcionário

mutation delete($id: ID) {
    deletar(id: $id) {
        id
        nome
        departamento
    }
}

Estrutura do Projeto

  • src/main/java: Contém o código-fonte da aplicação.
    • controller: Controladores GraphQL.
    • service: Serviços que contêm a lógica de negócio.
    • model: Classes de modelo que representam os dados.
    • repository: Interfaces de repositório para acesso aos dados.
  • src/main/resources: Contém arquivos de configuração e o schema GraphQL.

Este README oferece uma visão geral do projeto, suas funcionalidades e como configurá-lo e executá-lo. Sinta-se à vontade para personalizá-lo conforme necessário.

Related Projects