/game-api-nestjs

Este repositorio alberga el código fuente de un proyecto que implementa una API utilizando JavaScript en conjunto con el framework de backend NestJS. La aplicación está diseñada para almacenar datos en una base de datos SQLite.

Primary LanguageTypeScript

Game API

Este repositorio alberga el código fuente de un proyecto que implementa una API utilizando JavaScript en conjunto con el framework de backend NestJS. La aplicación está diseñada para almacenar datos en una base de datos SQLite.

Esta base de datos cuenta con 35 registros con su:

  1. Título
  2. Descripción
  3. Género
  4. Cover/Caratula en webp y jpg
  5. Consola
  6. Año de lanzamiento
  7. Precio
  8. Generación que pertenece el juego

Ver demo Probar API

Tecnologías Utilizadas

  • NestJS: Framework de backend que facilita el desarrollo de aplicaciones escalables y modularizadas en Node.js.
  • SQLite: Alojamiento de la base de datos SQLite.
  • Preact: Una alternativa a React con una API similar.
  • Hosting Vercel: Hosting dónde esta alojada la demo
  • Hosting Render: Hosting dónde esta alojada la API

Requirementos

  • Instalar Turso
  • NodeJS
  • Tener instalado NPM este ya viene con NodeJS o pnpm

Uso de Turso

  1. Se tiene que crear una cuenta con GitHub

  2. Autenticarse.

turso auth login
  1. Crear una base de datos.
turso db create games

Obtener URL y Token

  1. Token
turso db tokens create games.
  1. Url
turso db show games --url

Tanto el token como la url tienen que ir en un archivo .env. Este es el ejemplo.

Insertar los datos

  1. Acceder
turso db shell games
  1. En el repo tiene el La definición de la base de datos y las sentencias SQL para añadir las columnas. Solo se tendra que copiar y pegar.

Iniciarlo en local

Clonar el repositorio

git clone https://github.com/Lauta-dev/render-nestjs.git

1.1. Instalar dependencias de la API

cd ./backend
pnpm install

1.2. Levantar API

pnpm run start:dev

2.1. Instalar dependencias del Frontend

cd ./demo/
pnpm install

1.2. Levantar el Frontend

pnpm run dev

Rutas de la API

  • Ruta: /
  • Método: GET
  • Descripción: Obtener todos los juegos.

Parámetros de Consulta Soportados:

  • limit, (opcional), Por defecto el limite es 10 x página

    • Descripción: Limita el número de juegos devueltos por página.
    • Tipo: Number
  • page, (opcional), Por defecto es la página 0

    • Descripción: Especifica la página de resultados.
    • Tipo: Number

  • Ruta: /consoles
  • Método: GET
  • Descripción: Obtener todas las consolas de la base de datos.

  • Ruta: /generations
  • Método: GET
  • Descripción: Obtener todas las generaciones de consolas de ls base de datos.

  • Ruta: /id/:id
  • Parámetro: id
  • Método: GET
  • Descripción: Obtener un objeto del juego que se le pase por id.

  • Ruta: /console/:console
  • Método: GET
  • Descripción: Obtener todos los juegos de una misma consola.
  • Posibles valores: ps1, ps2, ps3, ps4, xbox, xbox_360, xbox_one

  • Ruta: /generation/:generation
  • Método: GET
  • Descripción: Obtener todos los juegos de una Generación.
  • Posibles valores: ps1, ps2, ps3, ps4, xbox, xbox_360, xbox_one