Files
fn_registry/functions/infra/crud_register_routes.md
T
egutierrez 47fac22230 chore: auto-commit (799 archivos)
- .claude/CLAUDE.md
- .claude/commands/subagentes.md
- .claude/rules/INDEX.md
- .mcp.json
- bash/functions/cybersecurity/analyze_dns.md
- bash/functions/cybersecurity/audit_http_headers.md
- bash/functions/cybersecurity/audit_ssh_config.md
- bash/functions/cybersecurity/check_firewall.md
- bash/functions/cybersecurity/detect_suspicious_users.md
- bash/functions/cybersecurity/encrypt_file.md
- ...

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-14 00:28:20 +02:00

45 lines
1.7 KiB
Markdown

---
name: crud_register_routes
kind: function
lang: go
domain: infra
version: "1.0.0"
purity: impure
signature: "func CRUDRegisterRoutes(mux *http.ServeMux, basePath string, res CRUDResource, db *sql.DB)"
description: "Registra las 5 rutas REST de un CRUDResource en un http.ServeMux: GET /base, GET /base/{id}, POST /base, PUT /base/{id}, DELETE /base/{id}. Usa la sintaxis 'METHOD /path' de Go 1.22+."
tags: [crud, routes, register, http, mux, infra, pendiente-usar]
uses_functions: [crud_generate_handlers_go_infra]
uses_types: [CRUDResource_go_infra]
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [database/sql, fmt, net/http, strings]
params:
- name: mux
desc: "*http.ServeMux donde se registran las rutas"
- name: basePath
desc: "prefijo de las rutas (ej: '/api/projects')"
- name: res
desc: "definicion CRUDResource del recurso"
- name: db
desc: "conexion *sql.DB a SQLite"
output: "muta mux con las 5 rutas CRUD registradas"
tested: true
tests: ["registra las 5 rutas y responde correctamente", "soporta multiples recursos en un mismo mux"]
test_file_path: "functions/infra/crud_test.go"
file_path: "functions/infra/crud_register_routes.go"
---
## Ejemplo
```go
mux := http.NewServeMux()
CRUDRegisterRoutes(mux, "/api/projects", projectRes, db)
CRUDRegisterRoutes(mux, "/api/users", userRes, db)
http.ListenAndServe(":8080", mux)
```
## Notas
Impura — muta el mux pasado como parametro. basePath se normaliza quitando el slash final. Si la ruta colisiona con una ya registrada en el mux, Go lanzara panic al arrancar (comportamiento estandar del ServeMux). Para combinar con middleware de logging/CORS, envolver el mux con HTTPMiddlewareChain al final.