Estructura real,
sin magia
Construye APIs REST en Go con arquitectura modular, documentación OpenAPI automática y código que cualquier desarrollador puede leer y mantener.
go get github.com/slice-soft/ss-keel-core func main() { app := core.New(core.KConfig{ Port: 3000, ServiceName: "my-api", Env: "development", Docs: core.DocsConfig{ Title: "My API", Version: "1.0.0", }, }) app.Use(&users.Module{}) app.Use(&products.Module{}) log.Fatal(app.Listen()) }
func (c *UsersController) Routes() []core.Route { return []core.Route{ core.GET("/users", c.FindAll). Tag("users"). Describe("List users"). WithResponse(core.WithResponse[UserDTO](200)), core.POST("/users", c.Create). Tag("users"). WithBody(core.WithBody[CreateUserDTO]()). WithResponse(core.WithResponse[UserDTO](201)), } }
Diseñado para proyectos reales
No para demos. Para proyectos que van a crecer, tener más de un desarrollador y vivir más de seis meses.
Sin magia
Sin reflexión, sin decoradores, sin generación de código. Builder patterns, interfaces y punteros. Lees el código de Keel y entiendes exactamente qué pasa.
OpenAPI automático
La especificación OpenAPI se genera en runtime desde las definiciones de rutas. La documentación siempre está sincronizada porque es el código mismo.
Modular por diseño
Módulo → Controlador → Servicio → Repositorio. Cada capa con una responsabilidad única. Cualquier desarrollador navega el código sin necesitar un mapa.
Listo para producción
Health checks, graceful shutdown, structured logging, request ID tracking, métricas y trazabilidad con OpenTelemetry. Sin configuración extra.
Una arquitectura clara
Cuatro capas con responsabilidades únicas. La estructura que escala sin que nadie tenga miedo de tocar código ajeno.
Agrupa todo lo relacionado a un dominio. Se registra en la app con una sola línea.
app.Use(&users.Module{}) Recibe HTTP, valida la entrada y delega al servicio. No sabe nada de la base de datos.
core.POST("/users", c.Create) Lógica de negocio pura. No sabe nada de HTTP ni de cómo se almacenan los datos.
func (s *UsersService) Create(dto CreateUserDTO) Acceso a datos con interfaz genérica. Intercambia la implementación sin tocar el servicio.
type Repository[T any, ID any] interface Ecosistema de addons
Cada addon implementa una interfaz definida en el core. Úsalos oficiales o construye los tuyos — el contrato es el mismo.
SQL con GORM — Postgres, MySQL, SQLite
MongoDB con el driver oficial de Go
Cache distribuida con Redis
Autenticación con JSON Web Tokens
OAuth 2.0 — Google, GitHub y más
Pub/Sub con RabbitMQ
Eventos con Apache Kafka
Email — SMTP, Resend, SendGrid
WebSockets en tiempo real
Archivos — S3, Google Cloud Storage, local
Métricas con Prometheus
Trazabilidad con OpenTelemetry
Tareas programadas con cron expressions
Traducciones e internacionalización
¿Necesitas un adaptador personalizado? Implementa la interfaz del core y funciona con Keel desde el día uno. Ver interfaces →
De cero a API
en segundos
Scaffolding de proyectos, generación de módulos, controladores, servicios, repositorios y guardas. Un comando y tienes la estructura lista.
- Proyecto completo con un solo comando
- Generación de cualquier capa de forma independiente
-
Servidor de desarrollo con live reload (
keel run) -
Auto-actualización con
keel upgrade
¿Listo para estructurar
tu próxima API en Go?
Keel está en producción activa. Puedes leer el código, abrirlo en la documentación o clonarlo directamente. Sin demos vacías.