Skip to content

API de películas que utiliza Bun y el framework Elysia. Puede interactuar con diferentes tipos de bases de datos. La elección de la base de datos se realiza a través de argumentos de línea de comandos cuando se inicia la aplicación.

Notifications You must be signed in to change notification settings

Rayzler/Movies-API-with-Bun-and-Elysia

Repository files navigation

Movies API with Bun and Elysia

Puedes elegir entre diferentes formas de almacenar los datos.

Bases de datos implementadas

  • MySQL
  • Archivo local JSON
  • MongoDB

Antes de empezar

Debes crear un archivo .env en la raíz del proyecto con el Puerto que deseas y las configuraciones de las bases de datos que vayas a utilizar.

PORT

Comandos

Instalación

  • Para instalar las dependencias:
bun install

Ejecución

  • Para ejecutar con archivo local JSON (por defecto):
bun run dev
bun run dev:local
  • Para ejecutar con MySQL:
bun run dev:mysql
  • Para ejecutar con MongoDB:
bun run dev:mongo

Pruebas

Cada base de datos debe probarse por separado.

  • Para probar la API con Archivo local JSON:
bun run test:local
  • Para probar la API con MySQL:
bun run test:mysql
  • Para probar la API con MongoDB:
bun run test:mongo

Peticiones

Cambia el puerto de los ejemplos si es necesario.

Métodos HTTP aceptados

MySQL

Creación de la base de datos

DROP SCHEMA IF EXISTS movies_db;
CREATE SCHEMA movies_db;
USE movies_db;

CREATE TABLE movie
(
    id       BINARY(16) PRIMARY KEY DEFAULT (UUID_TO_BIN(UUID())),
    title    VARCHAR(255)           NOT NULL,
    year     INT                    NOT NULL,
    director VARCHAR(255)           NOT NULL,
    duration INT                    NOT NULL,
    poster   TEXT,
    rate     DECIMAL(2, 1) UNSIGNED NOT NULL
);

CREATE TABLE genre
(
    id   INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL UNIQUE
);

CREATE TABLE movie_genre
(
    movie_id BINARY(16) REFERENCES movie (id),
    genre_id INT REFERENCES genre (id),
    PRIMARY KEY (movie_id, genre_id)
);

INSERT INTO genre (name)
VALUES ('Action'),
       ('Adventure'),
       ('Animation'),
       ('Biography'),
       ('Comedy'),
       ('Crime'),
       ('Drama'),
       ('Family'),
       ('Fantasy'),
       ('History'),
       ('Horror'),
       ('Music'),
       ('Mystery'),
       ('Romance'),
       ('Sci-Fi'),
       ('Sport'),
       ('Thriller'),
       ('War'),
       ('Western');

Conexión a MySQL

Para conectarse a MySQL, se debe crear o editar un archivo .env en la raíz del proyecto con las siguientes variables de entorno:

MYSQL_HOST
MYSQL_USER
MYSQL_PASSWORD
MYSQL_DATABASE
MYSQL_PORT

MongoDB

Creación de la base de datos

La base de datos se crea automáticamente al insertar los primeros documentos.

Conexión a MongoDB

Para conectarse a MongoDB, se debe crear o editar el archivo .env en la raíz del proyecto con las siguientes variables de entorno:

MONGO_URI
MONGO_DB

About

API de películas que utiliza Bun y el framework Elysia. Puede interactuar con diferentes tipos de bases de datos. La elección de la base de datos se realiza a través de argumentos de línea de comandos cuando se inicia la aplicación.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published