Documentação rápida dos endpoints expostos pelo servidor Express (
main.ts).
Todos retornam respostas em JSON e seguem o rate limit global de 100 requisições por minuto por IP.
Ver Levantamento de Requisitos
wiredia/
├── main.ts # Servidor Express principal
├── auth.ts # Rotas de autenticação (login/registro)
├── apikey.ts # Gerenciamento de API keys
├── database.ts # Configuração do SQLite
├── package.json # Dependências do projeto
├── tsconfig.json # Configuração TypeScript
├── .env.example # Exemplo de variáveis de ambiente
├── utils/ # Utilitários
│ ├── hash.ts # Funções de hash
│ ├── compare.ts # Comparação de hashes
│ ├── base64.ts # Codificação/decodificação Base64
│ ├── hex.ts # Codificação/decodificação hexadecimal
│ ├── cpf.ts # Validação e formatação de CPF
│ ├── cep.ts # Validação de CEP brasileiro
│ ├── time.ts # Conversão de timestamps
│ ├── valor.ts # Conversão de moedas (fiat e crypto)
│ └── lastfm.ts # Integração com Last.fm API
├── public/ # Arquivos estáticos (HTML)
│ ├── login.html # Página de login
│ ├── register.html # Página de registro
│ ├── panel.html # Painel do usuário
│ └── admin.html # Painel administrativo
├── logs/ # Logs diários (YYYY-MM-DD.log)
└── dist/ # Código compilado (gerado)
Para usar a API, você precisa de uma API Key. Primeiro, registre-se e gere sua chave:
https://api.wiredia.dev/registrar
https://api.wiredia.dev/login
No painel (https://api.wiredia.dev/panel), você pode:
Todas as requisições aos endpoints da API precisam incluir sua API Key no header:
import requests
headers = {
"x-api-key": "sua_api_key_aqui"
}
resp = requests.get("https://api.wiredia.dev/hash",
params={"text": "hello"},
headers=headers)
GET /hashtext (obrigatório), algorithm (md5, sha1, sha256, etc.; padrão sha256){ algorithm, hash }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.get("https://api.wiredia.dev/hash",
params={"text": "hello", "algorithm": "sha256"},
headers=headers)
print(resp.json()) # {"algorithm": "sha256", "hash": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"}
POST /compare{ text, hash, algorithm? }{ algorithm, match }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.post("https://api.wiredia.dev/compare",
json={
"text": "hello",
"hash": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824",
"algorithm": "sha256"
},
headers=headers)
print(resp.json()) # {"algorithm": "sha256", "match": true}
POST /base64/encode{ text }{ encoded }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.post("https://api.wiredia.dev/base64/encode",
json={"text": "Hello, World!"},
headers=headers)
print(resp.json()) # {"encoded": "SGVsbG8sIFdvcmxkIQ=="}
POST /base64/decode{ base64 }{ decoded }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.post("https://api.wiredia.dev/base64/decode",
json={"base64": "SGVsbG8sIFdvcmxkIQ=="},
headers=headers)
print(resp.json()) # {"decoded": "Hello, World!"}
POST /cpf{ cpf }{ valid, formatted }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.post("https://api.wiredia.dev/cpf",
json={"cpf": "12345678909"},
headers=headers)
print(resp.json()) # {"valid": true, "formatted": "123.456.789-09"}
POST /cep{ cep }{ valido, cep_limpo, cep_formatado, regiao, erros }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.post("https://api.wiredia.dev/cep",
json={"cep": "01311000"},
headers=headers)
print(resp.json()) # {"valido": true, "cep_limpo": "01311000", "cep_formatado": "01311-000", "regiao": "Grande São Paulo", "erros": []}
POST /hex/encode{ text }{ encoded }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.post("https://api.wiredia.dev/hex/encode",
json={"text": "hello"},
headers=headers)
print(resp.json()) # {"encoded": "68656c6c6f"}
POST /hex/decode{ hex }{ decoded }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.post("https://api.wiredia.dev/hex/decode",
json={"hex": "68656c6c6f"},
headers=headers)
print(resp.json()) # {"decoded": "hello"}
GET /timestampts (timestamp Unix em segundos){ input, iso, locale, utc }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.get("https://api.wiredia.dev/timestamp",
params={"ts": "1732102110"},
headers=headers)
print(resp.json()) # {"input": "1732102110", "iso": "2024-11-20T12:01:50.000Z", "locale": "20/11/2024 09:01:50", "utc": "Wed, 20 Nov 2024 12:01:50 GMT"}
GET /lastfm/:usernamegetLatestTrack).import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.get("https://api.wiredia.dev/lastfm/seu_username",
headers=headers)
print(resp.json()) # {"artist": "...", "track": "...", "album": "...", etc.}
GET /valor/:moeda:moeda (ex.: usd, brl, btc, eth, etc.){ moeda, valor }import requests
headers = {"x-api-key": "sua_api_key_aqui"}
resp = requests.get("https://api.wiredia.dev/valor/USD", headers=headers)
print(resp.json()) # {"moeda": "USD", "valor": 5.25}
resp = requests.get("https://api.wiredia.dev/valor/BTC", headers=headers)
print(resp.json()) # {"moeda": "BTC", "valor": 350000.50}
Cada requisição gera uma linha JSON em logs/YYYY-MM-DD.log, com campos como ip, method, path, status, body, etc.
npm install
npm run start # ou npx ts-node main.ts