Skip to content

Esta es una API REST de películas, diseñada para ofrecer una amplia gama de funcionalidades relacionadas con la gestión de películas. Desde la obtención de información sobre películas hasta la creación y actualización de registros.

License

johnsi15/apiMoviesTypeScript

Repository files navigation

API MOVIES CI

Movies

¿How does that work?

Require Node.js v18.15.0

  • npm install to install the dependencies
  • npm run dev to run development mode app
  • npm start to build production

ESLint

Quick start npm init @eslint/config

Install dependencies:

npm i eslint-config-standard-with-typescript -D -E

https://www.npmjs.com/package/eslint-config-standard-with-typescript

.eslintrc.cjs

"extends": [
  "eslint-config-standard-with-typescript",
],
"parserOptions": {
  "project": "./tsconfig.json"
},

Este proyecto es una API que proporciona información sobre películas. Puedes utilizar esta API para acceder a detalles de películas, buscar películas por tags y más.

Características

  • Obtén detalles de películas.
  • Busca películas por tags.
  • Agrega nuevas películas a la base de datos.
  • Autenticación de usuarios (si es aplicable).

Uso

Endpoints

  • /api/movies: Obtiene una lista de películas.
  • /api/movies/{movieId}: Obtiene detalles de una película específica.
  • /api/movies?tags=Acción&tags=Misterio&tags=Drama: Busca películas por tags.
  • /api/movies: Agrega una nueva película.

Autenticación

Si es necesario autenticarse para acceder a ciertos recursos, debes incluir un encabezado de autorización en tu solicitud. Ejemplo:

Authorization: Bearer tu_token_de_acceso

API de Autenticación

Este proyecto permite a los usuarios registrarse como proveedores de servicios. A continuación, se muestra un ejemplo de cómo puedes registrarte como proveedor utilizando esta API de películas.

Registro de Proveedor

Para registrarte como proveedor o iniciar sesión si ya tiene un usuario y contraseña, debes realizar una solicitud POST a la siguiente URL: /api/auth/sign-provider.

Ejemplo de Solicitud

Puedes utilizar una herramienta como Thunder Client o cualquier cliente HTTP para realizar esta solicitud. Aquí tienes un ejemplo de cómo hacerlo en JavaScript:

let headersList = {
  "Accept": "*/*",
  "User-Agent": "Thunder Client (https://www.thunderclient.com)",
  "X-Requested-With": "XMLHttpRequest",
  "Authorization": "Basic user&password",
  "Content-Type": "application/json"
}

const PUBLIC_KEY_TOKEN = '52ec1f8156f18dcd8057f49ed71719be77112e537dd382cef3f60f1c5d5d936e'

let bodyContent = JSON.stringify({
	"name": "Andrey provider",
	"email": "japrovider@gmail.com",
	"password": "secret",
	"apiKeyToken": PUBLIC_KEY_TOKEN
});

let response = await fetch("http://localhost:3000/api/auth/sign-provider", { 
  method: "POST",
  body: bodyContent,
  headers: headersList
});

let data = await response.json();
console.log(data);

Ejemplos

Obtener una lista de películas

GET /api/movies

let headersList = {
    "User-Agent": "Thunder Client (https://www.thunderclient.com)",
    "Accept": "*/*, application/json",
    "X-Requested-With": "XMLHttpRequest",
    "Authorization": "Bearer token"
}

let response = await fetch("http://localhost:3000/api/movies", { 
  method: "GET",
  headers: headersList
});

let data = await response.json();
console.log(data);

Obtener detalles de una película

GET /api/movies/{movieId}

let headersList = {
  "User-Agent": "Thunder Client (https://www.thunderclient.com)",
  "Accept": "*/*, application/json",
  "X-Requested-With": "XMLHttpRequest",
  "Authorization": "Bearer token"
}

let response = await fetch("http://localhost:3000/api/movies/650f5136c993a5e4ea7902f4", { 
  method: "GET",
  headers: headersList
});

let data = await response.json();
console.log(data);

Buscar películas por tags

GET /api/movies?tags=Acción&tags=Misterio&tags=Drama

let headersList = {
  "User-Agent": "Thunder Client (https://www.thunderclient.com)",
  "Accept": "*/*, application/json",
  "X-Requested-With": "XMLHttpRequest",
  "Authorization": "Bearer token"
}

let response = await fetch("http://localhost:3000/api/movies?tags=Tego&tags=debitiS&tags=drama", { 
  method: "GET",
  headers: headersList
});

let data = await response.json();
console.log(data);

Agregar una nueva película

POST /api/movies

let headersList = {
  "User-Agent": "Thunder Client (https://www.thunderclient.com)",
  "Accept": "*/*, application/json",
  "X-Requested-With": "XMLHttpRequest",
  "Authorization": "Bearer token",
  "Content-Type": "application/json"
}

let bodyContent = JSON.stringify({
  "title": "Dickens 011d32bfb9c2",
  "year": "2006",
  "cover": "https://occ-0-1952-2433.1.nflxso.net/dnm/api/v6/0DW6CdE4gYtYx8iy3aj8gs9WtXE/AAAABRcGy6ws9z-3R_jjOxJxY1Hsu-8N4zF430fZMr07WavWEAGcixUPPMO7I_YgrGWc23utV4mM30qP4MBHyKcQ0WozRRdTdaYMstq55mcOZUyJ31uZJ45AmpGCBBs7qQ.jpg?r=72b",
  "description": "Carter b7a1557a7bfd",
  "duration": "293",
  "source": "https://johnserrano.co",
  "tags": [
    "Comedia"
  ]
});

let response = await fetch("http://localhost:3000/api/movies", { 
  method: "POST",
  body: bodyContent,
  headers: headersList
});

let data = await response.json();
console.log(data);

Obtener una lista de películas pública

GET /api/movies/public

let headersList = {
  "User-Agent": "Thunder Client (https://www.thunderclient.com)",
  "Accept": "*/*, application/json",
  "X-Requested-With": "XMLHttpRequest"
}

let response = await fetch("https://movies-john-serrano.koyeb.app/api/movies/public", { 
  method: "GET",
  headers: headersList
});

let data = await response.json();
console.log(data);

About

Esta es una API REST de películas, diseñada para ofrecer una amplia gama de funcionalidades relacionadas con la gestión de películas. Desde la obtención de información sobre películas hasta la creación y actualización de registros.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published