{"id":28496305,"url":"https://github.com/yken-neky/api-rest-with-go","last_synced_at":"2026-04-22T16:33:28.058Z","repository":{"id":296824273,"uuid":"994519708","full_name":"yken-neky/API-REST-with-Go","owner":"yken-neky","description":"A basic (for now) API REST server with Go for Web Aplications","archived":false,"fork":false,"pushed_at":"2025-06-02T15:34:01.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-02T18:55:22.879Z","etag":null,"topics":["api-rest","backend","golang","postgres","web-development"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yken-neky.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-02T04:18:09.000Z","updated_at":"2025-06-02T15:29:51.000Z","dependencies_parsed_at":"2025-06-02T18:58:30.607Z","dependency_job_id":"7e3aa8b7-c0d2-46b5-b555-dd6849dc04f2","html_url":"https://github.com/yken-neky/API-REST-with-Go","commit_stats":null,"previous_names":["yken-neky/api-rest-with-go"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/yken-neky/API-REST-with-Go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yken-neky%2FAPI-REST-with-Go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yken-neky%2FAPI-REST-with-Go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yken-neky%2FAPI-REST-with-Go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yken-neky%2FAPI-REST-with-Go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yken-neky","download_url":"https://codeload.github.com/yken-neky/API-REST-with-Go/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yken-neky%2FAPI-REST-with-Go/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263210359,"owners_count":23431107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","backend","golang","postgres","web-development"],"created_at":"2025-06-08T12:07:14.887Z","updated_at":"2026-04-22T16:33:23.040Z","avatar_url":"https://github.com/yken-neky.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API REST con Go\n\nAPI REST moderna y profesional construida con Go, siguiendo principios de arquitectura hexagonal y mejores prácticas de desarrollo.\n\n## Características Principales\n\n- Operaciones CRUD completas para gestión de items\n- Base de datos PostgreSQL\n- Arquitectura hexagonal para mejor mantenibilidad\n- Sistema de logs y monitoreo\n- Control de errores robusto\n- Límites de tasa de peticiones\n- Verificación de estado del sistema\n- Configuración flexible por ambiente\n- Cierre controlado del servidor\n\n## Flujo de la Aplicación\n\n```mermaid\ngraph LR\n    A[Cliente] --\u003e|HTTP Request| B[API]\n    B --\u003e|Validación| C[Lógica de Negocio]\n    C --\u003e|Operación| D[(Base de Datos)]\n    D --\u003e|Resultado| C\n    C --\u003e|Respuesta| B\n    B --\u003e|HTTP Response| A\n```\n\n## Requisitos Previos\n\n- Go 1.21 o superior\n- PostgreSQL\n\n## Configuración\n\n1. Crea un archivo `.env` en el directorio raíz con las siguientes variables:\n\n```env\n# Aplicación\nAPP_NAME=api-rest-with-go\nAPP_VERSION=2.0.0\nAPP_ENV=development\n\n# Base de Datos\nDB_HOST=localhost\nDB_PORT=5432\nDB_USER=postgres\nDB_PASSWORD=tu_contraseña\nDB_NAME=api_rest_go\nDB_SSLMODE=disable\n\n# Servidor\nSERVER_PORT=8080\nSERVER_READ_TIMEOUT=10\nSERVER_WRITE_TIMEOUT=10\nSERVER_IDLE_TIMEOUT=60\n```\n\n## Instalación\n\n1. Clona el repositorio\n2. Instala las dependencias:\n   ```bash\n   go mod download\n   ```\n3. Ejecuta la aplicación:\n   ```bash\n   go run cmd/api/main.go\n   ```\n\n## Endpoints de la API\n\n### Verificación de Estado\n- GET `/health` - Verifica el estado de la aplicación\n- GET `/ping` - Endpoint simple de verificación\n\n### Gestión de Items\n- POST `/api/v2/items` - Crear un nuevo item\n- GET `/api/v2/items` - Obtener todos los items\n- GET `/api/v2/items/:id` - Obtener un item por ID\n- PUT `/api/v2/items/:id` - Actualizar un item\n- DELETE `/api/v2/items/:id` - Eliminar un item\n\n## Estructura del Proyecto\n\n```\n.\n├── cmd/                  # Punto de entrada de la aplicación\n├── internal/            # Código interno de la aplicación\n│   ├── config/         # Configuración\n│   ├── core/           # Núcleo de la aplicación\n│   └── infrastructure/ # Implementaciones técnicas\n└── .env                # Variables de entorno\n```\n\n## Manejo de Errores\n\nLa API implementa un sistema robusto de manejo de errores que proporciona mensajes claros y útiles:\n\n- Errores de validación\n- Errores de base de datos\n- Errores de servidor\n- Conflictos de recursos\n\n## Seguridad\n\n- Implementación de rate limiting\n- Timeouts configurables\n- Validación de entrada\n- Soft delete para preservar datos\n\n## Monitoreo\n\nEl endpoint `/health` proporciona información sobre:\n- Estado de la base de datos\n- Recursos del sistema\n- Versión de la aplicación\n- Estado general del servicio\n\n## Licencia\n\nEste proyecto está licenciado bajo la Licencia MIT - ver el archivo [LICENSE](LICENSE) para más detalles.\n\n## Documentación Técnica\n\nPara información técnica detallada sobre la implementación, arquitectura y patrones de diseño, consulta la [Documentación Técnica](TECH_DOC.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyken-neky%2Fapi-rest-with-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyken-neky%2Fapi-rest-with-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyken-neky%2Fapi-rest-with-go/lists"}