Este projeto é uma API desenvolvida com FastAPI para simular dispositivos e medições. Ele fornece endpoints para gerenciar dispositivos, obter medições e monitorar o status do servidor.
- Python 3.9+
- Docker (opcional, para execução em container)
- pip para gerenciar dependências
-
Clone o repositório:
git clone <URL_DO_REPOSITORIO> cd <NOME_DO_REPOSITORIO>
-
Crie um ambiente virtual (opcional, mas recomendado):
python3 -m venv venv source venv/bin/activate # No Windows: venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Execute o servidor:
uvicorn main:app --host 0.0.0.0 --port 8000
-
Acesse a documentação interativa da API:
- Swagger UI: http://127.0.0.1:8000/docs
- Redoc: http://127.0.0.1:8000/redoc
-
Certifique-se de que o Docker está instalado e em execução.
-
Construa a imagem Docker:
docker build -t simulador-fastapi .
-
Execute o container:
docker run -p 8000:8000 simulador-fastapi
-
Acesse a API em http://127.0.0.1:8000.
main.py
: Contém a lógica principal da API.requirements.txt
: Lista de dependências do projeto.Dockerfile
: Configuração para criar a imagem Docker.build-mac.sh
ebuild-linux.sh
: Scripts para construir e publicar imagens Docker para diferentes plataformas.
- GET /api/status: Retorna o status atual do servidor.
- PUT /api/status: Atualiza o status do servidor.
- GET /api/devices: Retorna todos os dispositivos.
- GET /api/devices/{hnuid}: Retorna informações de um dispositivo específico.
- PUT /api/devices/{hnuid}/zero: Reseta as medições de um dispositivo.
- GET /api/devices/{hnuid}/measurements: Retorna medições de um dispositivo.
- PUT /api/devices/measurements: Atualiza medições (simulado).
curl -X GET http://127.0.0.1:8000/api/status
curl -X PUT "http://127.0.0.1:8000/api/status?isRunning=false&consoleVisible=false"
curl -X GET http://127.0.0.1:8000/api/devices
curl -X GET "http://127.0.0.1:8000/api/devices/201-001-40/measurements?qtd=5"
build-mac.sh
: Constrói e publica a imagem Docker para a plataformalinux/arm64
.build-linux.sh
: Constrói e publica a imagem Docker para a plataformalinux/amd64
.
- FastAPI: Framework para construção de APIs rápidas e eficientes.
- Pydantic: Validação de dados e criação de modelos.
- Docker: Containerização da aplicação.
- Faça um fork do repositório.
- Crie uma branch para sua feature ou correção:
git checkout -b minha-feature
- Faça commit das suas alterações:
git commit -m "Minha nova feature"
- Envie para o repositório remoto:
git push origin minha-feature
- Abra um Pull Request.
Este projeto está licenciado sob a MIT License.