Hola, les saluda Miguel y para hoy les traigo este nuevo tutorial.
Creación de una aplicación lista para usar para microservicios en producción en 5 minutos
En este artículo, haremos una API Rest con Golang lista para ejecutarse en producción y configurada para los microservicios.
Todo el contenido que se muestra en este artículo está disponible como una plantilla de Github en el siguiente enlace:
Prerrequisitos
Antes de comenzar, debes tener instalado Golang en tu entorno de desarrollo, por eso aquí dejo algunos enlaces que explican cómo instalarlo:
- Windows 10: https://www.digitalocean.com/community/tutorials/how-to-install-go-and-set-up-a-local-programming-environment-on-windows-10-es
- Ubuntu 18.04 LTS: https://www.digitalocean.com/community/tutorials/como-instalar-go-en-ubuntu-18-04-es
- Mac OS: https://www.digitalocean.com/community/tutorials/how-to-install-go-and-set-up-a-local-programming-environment-on-macos-es
Marcos y bibliotecas utilizados
- github.com/swaggo/gin-swagger
- github.com/gin-gonic/gin
- github.com/dgrijalva/jwt-go
- github.com/jinzhu/gorm
- github.com/spf13/viper
Cómo utilizar esta plantilla
Puede crear un nuevo proyecto en Github si accede al repositorio de plantillas (https://github.com/antonioalfa22/go-rest-template) usando el botón «Usar esta plantilla»:
El uso del botón lo llevará a la página para crear un nuevo repositorio, donde puede elegir si desea incluir todas las ramas o no.
El proyecto se forma siguiendo las buenas prácticas para la estructuración de proyectos en Golang especificadas en https://github.com/golang-standards/project-layout
- / cmd: En esta carpeta están los archivos de entrada al proyecto (main.go), así como otros archivos dependiendo del tipo de ejecución (por ejemplo, database.db, config.yml, etc.)
- / docs: En esta carpeta se guardan los archivos de configuración de swagger para generar automáticamente la documentación de la API (disponible en http: // localhost: 3000 / docs / index.html)
- / internal: El código de la aplicación se divide en dos carpetas: api y pkg:
- / internal / api: Aplicación principal, controladores, middlewares y enrutador
- / internal / pkg: Modelos, persistencia y base de datos.
- / pkg: Módulos reutilizables en otras aplicaciones (por ejemplo: cripto, manipuladores, etc.)
- / test: Pruebas unitarias del proyecto
- Makefile: Facilita el uso de la aplicación, tiene el siguiente formato
- Dockerfile:
Añadir comentario