cfdf515228
- .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>
45 lines
1.7 KiB
Markdown
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.
|