Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/feltex/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.
https://github.com/feltex/funcionario-graphql
graphql-server grapql java java21 maven spring spring-boot
Last synced: 3 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/feltex/funcionario-graphql
- Owner: feltex
- Created: 2024-05-21T21:15:58.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-06-01T13:28:20.000Z (7 months ago)
- Last Synced: 2024-09-28T21:41:17.833Z (3 months ago)
- Topics: graphql-server, grapql, java, java21, maven, spring, spring-boot
- Language: Java
- Homepage:
- Size: 288 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Feltex-graphql
![GraphQL](imagens/graphQL.png)
# 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**:
```sh
git clone [email protected]:feltex/funcionario-graphql.git
```
2. **Navegue até o diretório do projeto**:
```sh
cd funcionario-graphql
```
3. **Compile o projeto utilizando Maven**:
```sh
mvn clean install
```
4. **Execute a aplicação**:
```sh
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
```graphql
query {
funcionarios {
id
nome
departamento
}
}
```### Adicionar um novo funcionário
```graphql
mutation createFuncionario($departamento: Departamento, $nome: String) {
criar(departamento: $departamento, nome: $nome) {
id
nome
departamento
}
}
```### Atualizar um funcionário existente
```graphql
mutation atualizar($id: ID, $nome: String, $departamento: Departamento) {
atualizar(id: $id, nome: $nome, departamento: $departamento) {
id
nome
departamento
}
}
```### Deletar um funcionário
```graphql
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.