Ejemplo API Rest en Golang


2 min de lectura
Ejemplo API Rest en Golang

Actualmente estoy aprendiendo a programar en más lenguajes de programación. Uno de ellos es Golang. Si bien una de mis perfiles no es el programar aplicaciones complejas y estoy mas orientando a crear script para automatizar tareas decidí que es hora de cambiar eso.

Contexto

Como ya mencione en otra publicación a mi me encanta jugar Minecraft y por eso decidí crear un blog referente a ese juego en el cual comparto información referente a modpacks, launchers y noticias.

Una sección del blog es la de streaming. El flujo de esa sección es el siguiente:

  1. El usuario ingresa la ruta de streaming del blog.
  2. Esa sección es un aplicación web que se desarrollo usando Nuxt.
  3. La aplicación consume el API Rest y consulta a otra API. Esta API es la de Twitch.
  4. En los parámetros de consulta se pasa el id del juego (en este caso es el de Minecraft) y el idioma (en español) en el que se quiere filtrar.
  5. Una vez que se tienen los resultados que se necesitan se genera un JSON y este JSON se modifica agregando el tamaño de imágenes que se requieren.
  6. Con el JSON modificado recien el API Rest devuelve una respuesta a Nuxt.
  7. Por ultimo Nuxt genera la vista que se solicito usando la información del API Rest.

Dependencias del Proyecto

En este proyecto se están usando las siguientes dependencias para facilitar el desarrollo del API Rest.

import (
	"github.com/fasthttp/router"
	"github.com/valyala/fasthttp"
    "gopkg.in/h2non/gentleman.v2"
)
  • FastHTTP: con esto se maneja toda lo referente al servicio web. Url del repositorio.
  • FastHTTP Router: con esto se maneja o gestionar todos los requests que lleguen al servicio web. Url del repositorio.
  • gentleman: con esto se crea un cliente web que va a realizar las consultas al API de Twitch. Url del repositorio.

Estructura del Proyecto

El API Rest tiene la siguiente estructura. Si bien se puede crear todo en un solo archivo, para mi es más fácil seguir esa estructura y tener todo de alguna forma mas ordenada.

  • api.go
  • structs/strucs.go
  • procs/procs.go
  • handlers/handlers.go

Como gestor de paquetes se esta usando Go Modules.

Información Adicional

Esta es la URL del repositorio minecraftboxapi-twitch en el que se encuentra este API Rest.

Minecraftbox es el nombre del blog referente a Minecraft.

Este link es para ingresar directamente la sección de streaming del blog de Minecraftbox.

Imagen Fuente: Golang Image.

Artículos Relacionados

SUBIR