Proyecto de ejemplo para el Hito 2: módulo CRUD de clientes en Go.
cmd/api/main.go— entrada principal del servidorinternal/models/— definición del structClientinternal/handlers/— handlers HTTPinternal/storage/— almacenamiento en memoria
Base: http://localhost:8080/api/v1/clientes
GET /— lista todos los clientes (200)POST /— crea cliente (201)GET /{id}— obtiene cliente por id (200 / 404)PUT /{id}— actualiza cliente (200 / 404 / 400)DELETE /{id}— elimina cliente (204 / 404)
nombrees obligatorio enPOSTyPUT- JSON inválido responde
400 - Id no encontrado responde
404
cd "C:\Users\AlexGC\OneDrive\Escritorio\Modulo de clientes"
go mod tidy
go run ./cmd/apiCrear cliente:
curl -X POST http://localhost:8080/api/v1/clientes/ \
-H "Content-Type: application/json" \
-d '{"nombre":"Juan Pérez","correo":"juan@example.com","telefono":"1234567890","direccion":"Calle Falsa 123","rfc":"JUAP800101"}'Listar clientes:
curl http://localhost:8080/api/v1/clientes/Obtener cliente por ID:
curl http://localhost:8080/api/v1/clientes/1Actualizar cliente:
curl -X PUT http://localhost:8080/api/v1/clientes/1 \
-H "Content-Type: application/json" \
-d '{"nombre":"Juan Pérez","correo":"juan.nuevo@example.com","telefono":"1234567890","direccion":"Calle Falsa 123","rfc":"JUAP800101"}'Eliminar cliente:
curl -X DELETE http://localhost:8080/api/v1/clientes/1-
cmd/api/main.gocon router Chi y subrouter/api/v1 -
internal/models/con structClienty tags JSON -
internal/handlers/con los 5 handlers CRUD -
internal/storage/con almacenamiento en memoria - Validación básica de
nombreobligatorio - Status codes correctos:
200,201,404,400,204 -
DOCUMENTO_TECNICO.mdañadido -
curl_commands.shcon ejemplos de demo -
.gitignorepara archivos binarios y temporales