Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vinicius-gabriel-p-leitao/computer-vault-api
Estoque de computadores
https://github.com/vinicius-gabriel-p-leitao/computer-vault-api
api bearer-tokens docker estudos hibernate jpa jwt postgresql spring-boot token
Last synced: about 21 hours ago
JSON representation
Estoque de computadores
- Host: GitHub
- URL: https://github.com/vinicius-gabriel-p-leitao/computer-vault-api
- Owner: Vinicius-Gabriel-P-Leitao
- Created: 2024-05-02T12:18:07.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-06-16T05:31:28.000Z (5 months ago)
- Last Synced: 2024-10-19T23:35:21.307Z (29 days ago)
- Topics: api, bearer-tokens, docker, estudos, hibernate, jpa, jwt, postgresql, spring-boot, token
- Language: Java
- Homepage:
- Size: 419 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Computer Vault
Este projeto consiste em uma API utilizando Spring Boot para gerenciamento de estoque de computadores. O banco de dados utilizado é o PostgreSQL, e todas as dependências são gerenciadas e executadas através do Docker.
## Sumário
- [Instalação](#instalação)
- [Configuração](#configuração)
- [Uso](#uso)
- [Endpoints](#endpoints)
- [Contribuição](#contribuição)
- [Licença](#licença)## Instalação
Para instalar e executar este projeto localmente, siga os passos abaixo:
1. Clone o repositório:
```bash
git clone https://github.com/Viniciusggabriel/computer-vault.git
cd computer-vault/server
```2. Configure o Docker e o Docker Compose:
Certifique-se de ter o Docker e o Docker Compose instalados em sua máquina.
3. Construa e inicie os containers:
```bash
docker-compose up --build
```Isso iniciará o PostgreSQL e o servidor Spring Boot.
## Configuração
Certifique-se de que as variáveis de ambiente necessárias estão definidas corretamente. Elas podem ser configuradas no arquivo `application.properties` ou através do Docker Compose.
Exemplo de configuração do `application.properties`:
```properties
spring.datasource.url=jdbc:postgresql://localhost:5432/banco
spring.datasource.username=postgres
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update
Uso
Após iniciar os containers, a API estará disponível em http://localhost:8080.Endpoints
Login
Antes de utilizar qualquer outro endpoint, é necessário realizar o login:http
Copiar código
POST /login
Content-Type: application/json{
"username": "User",
"password": "User"
}
Este endpoint irá gerar um token do tipo Bearer que deve ser usado nos headers das requisições subsequentes.Listar todos os computadores
http
Copiar código
GET /v1/computer?page=0&size=20
Authorization: Bearer {token}
Adicionar um novo computador
http
Copiar código
POST /v1/computer
Content-Type: application/json
Authorization: Bearer {token}{
"dados-gerais": {
"quem-adicionou": "User",
"condicoes": "NOVO",
"unidade-de-negocio": "HOSPITAL",
"departamento": "COLETA",
"numero-patrimonio": "221103",
"local": "POSTO"
},
"hardware": {
"marca-computador": "DELL",
"tipo-computador": "DESKTOP",
"nome": "Nome6",
"ip": "192.168.1.6",
"processador": "i5-8500",
"memoria-ram": 32,
"frequencia-ram": 2400,
"tipo-ram": "DDR3",
"modelo-ram": "DIMM",
"quantidade-instalada": 2,
"HD": 256,
"SSD": 512
},
"software": {
"sistema-operacional": "W11"
}
}
Atualizar um computador
http
Copiar código
PATCH /v1/computer/{id}
Content-Type: application/json
Authorization: Bearer {token}{
"dados-gerais": {
"quem-adicionou": "User",
"condicoes": "NOVO",
"unidade-de-negocio": "HOSPITAL",
"departamento": "COLETA",
"numero-patrimonio": "221103",
"local": "POSTO"
},
"hardware": {
"marca-computador": "DELL",
"tipo-computador": "DESKTOP",
"nome": "Nome6",
"ip": "192.168.1.6",
"processador": "i5-8500",
"memoria-ram": 32,
"frequencia-ram": 2400,
"tipo-ram": "DDR3",
"modelo-ram": "DIMM",
"quantidade-instalada": 2,
"HD": 256,
"SSD": 512
},
"software": {
"sistema-operacional": "W11"
}
}
Deletar um computador
http
Copiar código
DELETE /v1/computer/{id}
Authorization: Bearer {token}