Esta é uma API RESTful para registro e consulta de pontos eletrônicos de funcionários. Desenvolvida com Flask e Flask-RESTX, a API oferece funcionalidades para registrar pontos de entrada e saída, consultar pontos de um usuário específico, atualizar e excluir registros de ponto, além de fornecer documentação interativa usando o Swagger.
Esta API permite que os administradores registrem, consultem, atualizem e excluam pontos eletrônicos de usuários, com base em suas informações (nome, e-mail, departamento, cargo, etc.). A API também oferece documentação automática utilizando o Swagger, facilitando o entendimento e o uso dos endpoints.
- Flask - Framework web para Python.
- Flask-RESTX - Extensão do Flask para criar APIs RESTful de forma simples e eficiente.
- SQLite - Banco de dados relacional leve utilizado para armazenamento dos registros de ponto.
- Swagger - Interface interativa gerada automaticamente para facilitar o uso e a documentação da API.
- Python 3.x - Certifique-se de ter o Python 3.x instalado em sua máquina.
- Dependências - As dependências podem ser instaladas utilizando o
pip.
-
Clone o repositório:
git clone https://github.com/seu-usuario/ponto-eletronico-api.git cd ponto-eletronico-api -
Crie um ambiente virtual (opcional, mas recomendado):
python -m venv venv source venv/bin/activate # Para Windows, use: venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Crie o banco de dados e as tabelas: O banco de dados será criado automaticamente na primeira execução da aplicação.
Para iniciar o servidor, execute o seguinte comando:
python pontoEletronico.pyO servidor estará disponível em http://localhost:5000/.
A documentação da API pode ser acessada através do Swagger na seguinte URL:
http://localhost:5000/
Aqui estão os principais endpoints da API:
- Método:
POST - Endpoint:
/PontoEletronico/registrar_ponto - Descrição: Registra um ponto de entrada ou saída para um usuário.
{
"nome": "João Silva",
"email": "[email protected]",
"departamento": "TI",
"cargo": "Desenvolvedor",
"id": "12345",
"tipo": "entrada"
}- 200 OK: Ponto registrado com sucesso.
- 400 Bad Request: Caso o tipo de ponto seja inválido.
- Método:
GET - Endpoint:
/PontoEletronico/consultar_pontos - Descrição: Retorna todos os pontos registrados no sistema.
{
"pontos": [
{
"usuario": {
"nome": "João Silva",
"email": "[email protected]",
"departamento": "TI",
"cargo": "Desenvolvedor",
"id": "12345"
},
"tipo": "entrada",
"hora": "09-03-2025 08:00:00"
}
]
}- Método:
GET - Endpoint:
/PontoEletronico/consultar_pontos/<id_usuario> - Descrição: Retorna os pontos registrados de um usuário específico.
id_usuario: ID do usuário cujos pontos você deseja consultar.
{
"pontos": [
{
"usuario": {
"nome": "João Silva",
"email": "[email protected]",
"departamento": "TI",
"cargo": "Desenvolvedor",
"id": "12345"
},
"tipo": "entrada",
"hora": "09-03-2025 08:00:00"
}
]
}- Método:
PUT - Endpoint:
/PontoEletronico/atualizar_ponto/<ponto_id> - Descrição: Atualiza as informações de um ponto eletrônico específico.
ponto_id: ID do ponto que você deseja atualizar.
{
"nome": "João Silva",
"email": "[email protected]",
"departamento": "TI",
"cargo": "Desenvolvedor",
"id": "12345",
"tipo": "saida"
}- 200 OK: Ponto atualizado com sucesso.
- 404 Not Found: Caso o ponto não seja encontrado.
- Método:
DELETE - Endpoint:
/PontoEletronico/deletar_ponto/<ponto_id> - Descrição: Exclui um ponto eletrônico específico.
ponto_id: ID do ponto que você deseja excluir.
- 200 OK: Ponto deletado com sucesso.
- 404 Not Found: Caso o ponto não seja encontrado.
curl -X POST "http://localhost:5000/PontoEletronico/registrar_ponto" -H "Content-Type: application/json" -d '{
"nome": "João Silva",
"email": "[email protected]",
"departamento": "TI",
"cargo": "Desenvolvedor",
"id": "12345",
"tipo": "entrada"
}'{
"mensagem": "Ponto de entrada registrado com sucesso!"
}
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para mais detalhes.