{"id":22781723,"url":"https://github.com/rayzler/movies-api-express","last_synced_at":"2026-04-09T11:02:31.862Z","repository":{"id":235303293,"uuid":"790469385","full_name":"Rayzler/Movies-API-Express","owner":"Rayzler","description":"Una API en Node.js con Express que maneja películas siguiendo el patrón MVC y permite seleccionar la base de datos mediante inyección de dependencias.","archived":false,"fork":false,"pushed_at":"2024-04-23T23:14:17.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-05T16:18:49.711Z","etag":null,"topics":["api","dependency-injection","express","json-api","mvc","mysql","mysql2","nodejs","zod-validation"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rayzler.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-04-22T23:52:37.000Z","updated_at":"2024-04-25T20:17:15.000Z","dependencies_parsed_at":"2024-04-23T00:59:27.219Z","dependency_job_id":null,"html_url":"https://github.com/Rayzler/Movies-API-Express","commit_stats":null,"previous_names":["rayzler/movies-api-express"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rayzler%2FMovies-API-Express","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rayzler%2FMovies-API-Express/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rayzler%2FMovies-API-Express/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rayzler%2FMovies-API-Express/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rayzler","download_url":"https://codeload.github.com/Rayzler/Movies-API-Express/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246333931,"owners_count":20760638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","dependency-injection","express","json-api","mvc","mysql","mysql2","nodejs","zod-validation"],"created_at":"2024-12-11T21:08:16.502Z","updated_at":"2025-12-30T21:32:12.532Z","avatar_url":"https://github.com/Rayzler.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿# Movies API with Node.js and Express\n\nPuedes elegir entre diferentes formas de almacenar los datos.\n\n### Bases de datos implementadas\n* MySQL\n* Archivo local JSON\n\nPara instalar las dependencias:\n\n```bash\nmpm install\n```\n\nPara ejecutar con archivo local JSON:\n\n```bash\nnpm run dev:local\n```\n\nPara ejecutar con MySQL:\n\n```bash\nnpm run dev:mysql\n```\n\n## MySQL\n\n### Creación de la base de datos\n\n```sql\nDROP SCHEMA IF EXISTS movies_db;\nCREATE SCHEMA movies_db;\nUSE movies_db;\n\nCREATE TABLE movie\n(\n    id       BINARY(16) PRIMARY KEY DEFAULT (UUID_TO_BIN(UUID())),\n    title    VARCHAR(255)           NOT NULL,\n    year     INT                    NOT NULL,\n    director VARCHAR(255)           NOT NULL,\n    duration INT                    NOT NULL,\n    poster   TEXT,\n    rate     DECIMAL(2, 1) UNSIGNED NOT NULL\n);\n\nCREATE TABLE genre\n(\n    id   INT AUTO_INCREMENT PRIMARY KEY,\n    name VARCHAR(255) NOT NULL UNIQUE\n);\n\nCREATE TABLE movie_genre\n(\n    movie_id BINARY(16) REFERENCES movie (id),\n    genre_id INT REFERENCES genre (id),\n    PRIMARY KEY (movie_id, genre_id)\n);\n\nINSERT INTO genre (name)\nVALUES ('Action'),\n       ('Adventure'),\n       ('Animation'),\n       ('Biography'),\n       ('Comedy'),\n       ('Crime'),\n       ('Drama'),\n       ('Family'),\n       ('Fantasy'),\n       ('History'),\n       ('Horror'),\n       ('Music'),\n       ('Mystery'),\n       ('Romance'),\n       ('Sci-Fi'),\n       ('Sport'),\n       ('Thriller'),\n       ('War'),\n       ('Western');\n```\n\n### Conexión a MySQL\nPara conectarse a MySQL, se debe crear un archivo `.env` en la raíz del proyecto con las siguientes variables de entorno:\n\n```bash\nMYSQL_HOST\nMYSQL_USER\nMYSQL_PASSWORD\nMYSQL_DATABASE\nMYSQL_PORT\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayzler%2Fmovies-api-express","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frayzler%2Fmovies-api-express","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frayzler%2Fmovies-api-express/lists"}