Categorygithub.com/claudiolabbe/api-rest-go
modulepackage
0.0.0-20241023192802-2f75ae74b8be
Repository: https://github.com/claudiolabbe/api-rest-go.git
Documentation: pkg.go.dev

# README

API REST con Go y Gin

Este proyecto es una API REST construida con el framework Gin en Go. La API permite realizar operaciones CRUD (Crear, Leer, Actualizar y Eliminar) para gestionar álbumes, usuarios y roles. También utiliza JWT para la autenticación..

Características

  • CRUD para Álbumes, Usuarios y Roles
  • Arquitectura organizada en controladores, servicios, modelos y rutas
  • Configuración con conexión a PostgreSQL

Requisitos Previos

  • Go 1.20 o superior

Instalación

  1. Clona este repositorio:

    git clone https://github.com/tu-usuario/api-rest-go.git
    cd api-rest-go
    
  2. Instala las dependencias:

    go get -u github.com/gin-gonic/gin
    go get -u gorm.io/gorm
    go get github.com/joho/godotenv
    go get golang.org/x/crypto/bcrypt
    go get github.com/golang-jwt/jwt/v5
    
  3. Crea un archivo .env en la raíz del proyecto para las variables de entorno

    DB_HOST=localhost
    DB_PORT=puerto
    DB_USER=tu_usuario
    DB_PASSWORD=tu_contraseña
    DB_NAME=tu_base_de_datos
    API_SECRET=tu_api_secret
    EXPIRATION_MINUTES=minutos_de_expiracion_token
    

Ejecución:

go run main.go

Por defecto, el servidor se ejecutará en http://localhost:8080.

Endpoints de la API

Login

MétodoEndpointDescripción
POST/loginCrea token para la autenticación

API de Álbumes

Permite gestionar álbumes a través de varios endpoints.

MétodoEndpointDescripción
GET/albumObtiene todos los álbumes
GET/album/:idObtiene un álbum por su ID
POST/albumCrea un nuevo álbum
PATCH/album/:idActualiza un álbum por su ID
DELETE/album/:idElimina un álbum por su ID

API de Usuarios

Permite gestionar Usuarios a través de varios endpoints.

MétodoEndpointDescripción
GET/userObtiene todos los usuarios
GET/user/:idObtiene un usuario por su ID
POST/userCrea un nuevo usuario
DELETE/user/:idElimina un usuario por su ID

API de Roles

Permite gestionar Roles a través de varios endpoints.

MétodoEndpointDescripción
GET/rolObtiene todos los roles
GET/rol/:idObtiene un rol por su ID
POST/rolCrea un nuevo rol
DELETE/rol/:idElimina un rol por su ID

# Packages

No description provided by the author