Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rayzler/movies-api-with-bun-and-elysia
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.
https://github.com/rayzler/movies-api-with-bun-and-elysia
api bun dependency-injection elysiajs env json-api mongodb mvc mysql-database mysql2 testing zod-validation
Last synced: 20 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/rayzler/movies-api-with-bun-and-elysia
- Owner: Rayzler
- Created: 2024-04-24T21:17:30.000Z (8 months ago)
- Default Branch: master
- Last Pushed: 2024-04-25T19:02:06.000Z (8 months ago)
- Last Synced: 2024-04-25T20:24:14.104Z (8 months ago)
- Topics: api, bun, dependency-injection, elysiajs, env, json-api, mongodb, mvc, mysql-database, mysql2, testing, zod-validation
- Language: TypeScript
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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.```bash
PORT
```## Comandos
### Instalación
* Para instalar las dependencias:```bash
bun install
```### Ejecución
* Para ejecutar con archivo local JSON (por defecto):```bash
bun run dev
``````bash
bun run dev:local
```* Para ejecutar con MySQL:
```bash
bun run dev:mysql
```* Para ejecutar con MongoDB:
```bash
bun run dev:mongo
```### Pruebas
Cada base de datos debe probarse por separado.* Para probar la API con Archivo local JSON:
```bash
bun run test:local
```* Para probar la API con MySQL:
```bash
bun run test:mysql
```* Para probar la API con MongoDB:
```bash
bun run test:mongo
```## Peticiones
Cambia el puerto de los ejemplos si es necesario.[Métodos HTTP aceptados](./api.http)
## MySQL
### Creación de la base de datos
```sql
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:```bash
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:```bash
MONGO_URI
MONGO_DB
```