Synapse API - Backend RESTful en Go
Synapse API: Llevando el Poder de Go a la Gestión de Prompts
Synapse API es un backend RESTful basado en Go que extiende las capacidades de Synapse, mi aplicación nativa de macOS para gestión de prompts. Esta API proporciona acceso programático a todos los datos de Synapse con poderosa funcionalidad de llenado de plantillas.
🚀 Por Qué Construí Esto
Después de crear Synapse para macOS, quería explorar cómo los mismos datos podrían ser accedidos y manipulados programáticamente. Este se convirtió en uno de mis primeros proyectos serios en Go, y realmente disfruté la experiencia de construir con la simplicidad y rendimiento de Go.
🔧 Características Principales
Arquitectura RESTful
- Operaciones CRUD completas para todos los tipos de datos
- Diseño de endpoints limpio e intuitivo
- Formato de solicitud/respuesta basado en JSON
- Rendimiento ligero y rápido
Gestión de Datos
- Prompts: Gestiona plantillas reutilizables con marcadores de posición
- Contextos: Maneja materiales de referencia e información de fondo
- Conocimiento: Organiza hechos, resúmenes y elementos de conocimiento
- Bibliotecas de Plantillas: Mantiene colecciones de fragmentos de plantillas
Procesamiento de Plantillas 🎯
- Llenado dinámico de variables en plantillas
- Soporte para sintaxis de marcador
{nombre_variable}
- Llena plantillas por contenido o por ID
- Renderizado de plantillas en tiempo real
📡 Endpoints de la API
Operaciones Generales
GET /api/data # Recuperar todos los datos
PUT /api/data # Actualizar todo el conjunto de datos
Endpoints Específicos por Recurso
GET /api/prompts # Obtener todos los prompts
PUT /api/prompts # Actualizar prompts
GET /api/contexts # Obtener todos los contextos
PUT /api/contexts # Actualizar contextos
GET /api/knowledge # Obtener todos los elementos de conocimiento
PUT /api/knowledge # Actualizar conocimiento
GET /api/templates # Obtener bibliotecas de plantillas
PUT /api/templates # Actualizar plantillas
Llenado de Plantillas
POST /api/fill-template # Llenar plantilla con variables
POST /api/fill-template-by-id # Llenar plantilla por ID
💡 Ejemplos de Plantillas
Llenar por contenido:
{
"template": "Hola {nombre}, ¡bienvenido a {lugar}!",
"variables": {
"nombre": "Juan",
"lugar": "nuestra plataforma"
}
}
Llenar por ID:
{
"template_id": "94BD3B8E-93C4-4ED8-B2A1-9765016C9521",
"variables": {
"tema_reunion": "planificación del proyecto",
"nombre_destinatario": "Juan Pérez"
}
}
🛠️ Stack Tecnológico
Construido con:
- Go - Lenguaje de backend limpio y eficiente
- Gorilla Mux - Router HTTP poderoso y matcher de URLs
- JSON - Persistencia e intercambio de datos nativo
- Diseño RESTful - Métodos HTTP y códigos de estado estándar
🎯 Integración Perfecta
La API funciona perfectamente con datos exportados desde la app Synapse de macOS:
- Fuente de Datos:
~/Documents/synapse_data.json
- Importación Directa: Usa datos exportados de Synapse inmediatamente
- Sincronización Bidireccional: Los cambios pueden fluir de vuelta a la app de escritorio
🚀 Comenzando
# Clonar y configurar
git clone [url-del-repositorio]
cd synapse-api
go mod tidy
# Ejecutar el servidor
go run main.go
# El servidor inicia en el puerto 8081
🧪 Pruebas
Incluye un script de pruebas completo:
./test-api.sh
Requiere curl
y jq
para las pruebas
🎓 Aprendiendo Go
Este proyecto marcó una de mis primeras exploraciones serias en Go, y quedé impresionado por:
- Simplicidad: Sintaxis limpia y conceptos directos
- Rendimiento: Compilación rápida y tiempo de ejecución eficiente
- Biblioteca Estándar: Rico soporte integrado para HTTP y JSON
- Herramientas: Excelente experiencia de desarrollo con
go mod
y testing
La experiencia me convenció de que Go es una excelente opción para desarrollo de APIs y servicios backend.
Extiende tu flujo de trabajo de Synapse con acceso programático y procesamiento dinámico de plantillas.
🌐 GitHub: Ver Repositorio del Proyecto
💻 Lenguaje: Go con Gorilla Mux
🔗 Compañero: Funciona con Synapse App para macOS