Este proyecto es un template básico para desarrollar APIs utilizando Go y el framework Gin. Está diseñado para facilitar la creación de servicios RESTful con una estructura limpia y organizada.
- Características
- Tecnologías
- Requisitos Previos
- Instalación
- Configuración
- Ejecutar el Proyecto
- Ejecutar en Docker
- Uso
- Contribuciones
- Licencia
- Estructura modular para facilitar la expansión y mantenimiento.
- Configuración opcional a través de variables de entorno.
- Registro y manejo de errores.
- Ejemplo de conexión a una base de datos.
- Go - Lenguaje de programación
- Gin - Framework HTTP para Go
- Docker - Contenedorización
- Pflag - Manejo de banderas de línea de comandos
- Godotenv - Carga de variables de entorno desde un archivo
.env
- Tener instalado Go (1.23 o superior).
- Tener instalado Docker.
- Tener instalado Docker Compose.
-
Clona el repositorio:
git clone https://github.com/oswaldom-code/api-template-gin.git cd api-template-gin
-
(Opcional) Crea un archivo
.env
para tus variables de entorno:cp .env.example .env
-
Modifica el archivo
.env
según tus configuraciones.
Asegúrate de que el archivo .env
contenga las siguientes variables:
DB_USER=oswaldom-code
DB_PASSWORD=tu_contraseña
DB_HOST=localhost
DB_PORT=5432
SERVER_HOST=localhost
SERVER_PORT=9000
SERVER_MODE=debug
AUTH_SECRET=tu_secreto
Para construir y ejecutar la aplicación en un contenedor Docker, sigue estos pasos:
-
Asegúrate de estar en el directorio del proyecto.
-
Construye la imagen de Docker:
sudo docker build -t api-template-app .
-
Ejecuta el contenedor, asegurándote de mapear los puertos y configuraciones necesarias:
sudo docker run -d --name api-template-container -p 9000:9000 --env-file .env api-template-app
En este comando:
-d
ejecuta el contenedor en segundo plano.--name
da un nombre al contenedor para facilitar su referencia.-p 9000:9000
mapea el puerto 9000 del contenedor al puerto 9000 de tu máquina local.--env-file .env
carga las variables de entorno desde el archivo.env
.
Para ejecutar la aplicación directamente en tu máquina:
-
Instala las dependencias:
go mod tidy
-
Ejecuta la aplicación (modo desarrollo):
go run main.go server
Una vez que la aplicación esté en ejecución, puedes hacer solicitudes a la API utilizando herramientas como Postman o curl.
Ejemplo de solicitud GET:
curl http://localhost:9000/ping
Las contribuciones son bienvenidas. Por favor, sigue estos pasos:
- Haz un fork del proyecto.
- Crea una rama para tu feature (
git checkout -b feature/nueva-feature
). - Realiza tus cambios y haz un commit (
git commit -m 'Agregada nueva feature'
). - Haz un push a la rama (
git push origin feature/nueva-feature
). - Abre un Pull Request.
Este proyecto está bajo la Licencia MIT - ver el archivo LICENSE para más detalles.