3.2 KiB
3.2 KiB
HST API v2.0
Servidor: https://tzrtech.org Estado: Producción Última actualización: 2025-12-18
Estadísticas
| Tabla | Registros | Descripción |
|---|---|---|
| hst | 658 | Etiquetas del sistema |
| spe | 145 | Especialidades |
| flg | 65 | Flags |
| vsn | 84 | Versiones |
| vue | 21 | Vistas |
| Total | 973 | Todas con h_maestro |
Sistema Dual de Hashes
h_maestro = SHA256(grupo || ':' || ref)
→ Identidad SEMÁNTICA (determinista)
→ Ejemplo: SHA256("hst:abk") = "335350bb41a329c..."
mrf = SHA256(bytes_imagen)
→ Identidad de ARCHIVO
→ URL: https://tzrtech.org/{mrf}.png
Endpoints
Dump completo
GET https://tzrtech.org/api/index.json
Retorna array con todos los tags.
Tag por h_maestro
GET https://tzrtech.org/api/tags/{h_maestro}
Ejemplo:
curl https://tzrtech.org/api/tags/335350bb41a329c31acac43197232850bc6828ec76650291ce230446e520774f
Búsqueda y filtro
GET https://tzrtech.org/api/tags?grupo={grupo}
GET https://tzrtech.org/api/tags?q={query}
GET https://tzrtech.org/api/tags?grupo={grupo}&q={query}
Ejemplos:
# Todas las etiquetas hst
curl "https://tzrtech.org/api/tags?grupo=hst"
# Buscar "finanzas"
curl "https://tzrtech.org/api/tags?q=finanzas"
# Buscar "yoga" en vsn
curl "https://tzrtech.org/api/tags?grupo=vsn&q=yoga"
Formato de Respuesta
{
"ref": "abk",
"h_maestro": "335350bb41a329c31acac43197232850bc6828ec76650291ce230446e520774f",
"mrf": "ed456cb46151edb46106863d16b4e4cade7af8e33d8c7cae8489125aee76ffa7",
"nombre_es": "audiolibro",
"nombre_en": "audiobook",
"grupo": "hst",
"imagen_url": "https://tzrtech.org/ed456cb46151edb46106863d16b4e4cade7af8e33d8c7cae8489125aee76ffa7.png"
}
Uso desde DECK
import requests
# Obtener tag por h_maestro
def get_tag(h_maestro: str) -> dict:
response = requests.get(f"https://tzrtech.org/api/tags/{h_maestro}")
return response.json()
# Buscar tags por grupo
def search_tags(grupo: str = None, query: str = None) -> list:
params = {}
if grupo:
params["grupo"] = grupo
if query:
params["q"] = query
response = requests.get("https://tzrtech.org/api/tags", params=params)
return response.json()
# Calcular h_maestro localmente (para verificación)
import hashlib
def calculate_h_maestro(grupo: str, ref: str) -> str:
return hashlib.sha256(f"{grupo}:{ref}".encode()).hexdigest()
Uso en S-CONTRACT
{
"context": {
"tags": {
"hst": ["335350bb41a329c...", "a7b3c9d4e5f6..."],
"hsu": [],
"emp": ["empresa_h_maestro..."],
"pjt": ["proyecto_h_maestro..."]
}
}
}
Subdominios Semánticos
Las imágenes también son accesibles via subdominio:
https://hst_finanzas.tzrtech.org → redirect → /{mrf}.png
https://spe_aluminio.tzrtech.org → redirect → /{mrf}.png
Formato: {grupo}_{ref_normalizado}.tzrtech.org
Historial
| Versión | Fecha | Cambios |
|---|---|---|
| 1.0 | 2025-12 | MVP imágenes con mrf |
| 2.0 | 2025-12-18 | Añadido h_maestro, API endpoints, limpieza duplicados |