Aplicación hecha con expressjs para el Curso de NodeJS de @Fictizia;
El objetivo es crear una aplicación web junto a una pequeña API rest y una base de datos almacenada en un fichero JSON para administrar películas.
Por defecto la aplicación arrancará en el puerto 8080.
git clone https://github.com/josex2r/film-api.git
cd film-api
npm install
npm start
Rellena el fichero .env
con los valores de de tu proyecto de Google Cloud:
CLIENT_ID
: ID de cliente del proyecto GoogleCLIENT_SECRET
: Clave secreta del proyecto GoogleCALLBACK_URL
: URL para el callback de OAuth (ej.http://localhost:8080/auth/google/callback
)PROJECT_ID
: ID del proyecto de Google
La aplicación contiene las siguientes rutas:
- Rutas públicas (sin autenticación)
/
:- Si la petición es un
GET
, muestra un formulario de login (email y contraseña) que envía unPOST
a/login
. - Si el usuario ya está autenticado redirige a
/films
.
- Si la petición es un
/login
:- Si la petición es un
POST
, comprueba si el usuario está en la base de datos () y si es correcto crea una coockie y redirige a la ruta/films
. En caso contrario redirige a/
para mostrar el formulario con un mensaje de error. /logout
: Destruye la sesión y redirige a/
- Si la petición es un
- Rutas privadas (con autenticación)
/films
: Muestra el listado de películas de la base de datos (`)/films/:film
: Muestra el detalle de película determinada/films/add
:- Si se accede mediante un
GET
, se muestra un formulario que permite añadir una película nueva. - Si se envía un
POST
con body, se añade la película a la base de datos y se redirige a/films
.
- Si se accede mediante un
- API (sin autenticación)
GET - /api/films
: Listado de películasGET - /api/films/:film
: Detalle de películaPOST - /api/films
: Añadir películaDELETE - /api/films/:film
: Borrar película