Skip to content

Proyecto final de clase de disenio digital IS-711

Notifications You must be signed in to change notification settings

carolusant/proyecto711

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 

Repository files navigation

Proyecto Diseño Digital

Autores

Instalación

Empezaremos preparando nuestra base de datos, para eso primero instalaremos xampp para crear un servidor local con MySQL (Aunque se puede hacer uso de un servidor MySQL+PHP de su preferencia). Abrimos el PhpMyAdmin el cual esta ubicado en el localhost, una vez estemos allí damos click a Importar y luego seleccionamos el archivo tienda.sql que se ha proporcionado.

Otra alternativa de servidor que permite crear y probar aplicaciones o páginas web wamp (Windows Apache MySQL PHP).

Importar BD

Una vez se haya creado la base de datos con sus registros correspondientes, procederemos a clonar el repositorio a la computadora, una vez descargado, ir a la carpeta raíz llamada proyecto y ejecute el siguiente comando para instalar todas las dependencias necesarias para ejecutar el proyecto

npm install

Después de haya finalizado, ejecutemos el siguiente comando para levantar el servidor

npm run dev

Si todo ha ido bien debería de salirnos un mensaje que nos indique estamos conectados a la DB y el puerto en el cual está escuchando el servidor y ahora estamos listos para usar nuestra API.

Servidor Activo

Ya debería estar corriendo en la siguiente dirección:

http://localhost:4000/

Autenticación

Lo primero que tenemos que hacer para poder usar la API, es autenticarse, esto lo hacemos enviando un POST al endpoint /auth que lleve como body un JSON que contenga el usuario y el password con el cual deseamos autenticarnos, puede hacerlo utilizando las credenciales por defecto admin:1234 y root:0000, o bien, creando su propio usuario.

Ruta
POST localhost:4000/auth/
Body
{
  "usuario":"admin",
  "password":"1234"
}
Estaremos utilizando Postman para realizar las pruebas a la API

post a login

El servidor nos enviará un JSON el cual contiene un token que enviaremos en cada solicitud para poder obtener acceso a la API, de otra manera no nos deja hacer nada con el endpoint /productos. El token es el string alfanumérico que viene como body.

Token recibido

Operaciones sobre el endpoint /productos/

Ahora pasaremos a demostrar las operaciones CRUD que se pueden realizar sobre el endpoint de /productos mediante el manejo de los verbos http que se nos solicitaron en los requerimientos del proyecto.

Verbo GET - Operación READ

Empezaremos haciendo un GET a ese endpoint para obtener todos los productos guardados en la base de datos, para ellos nos vamos a la ruta dada y en la opción que dice Authorization vamos seleccionar el Type como Bearer Token y en la casilla de texto que se nos despliega introduciremos el token que nos vino en el request anterior.

GET localhost:4000/productos/

GET

Con eso obtendremos acceso a la API y se nos mostraría el JSON en el cual viene en el código de respuesta y todos los productos almacenados en la base de datos.

response get

Si no se envía token o este está incorrecto obtendremos un mensaje que de error el cual nos indica que no viene token (o viene malo) en el request y no nos permite ver nada.

Sin token

sin token

Token incorrecto

mal token

La API nos permite poder enviar el id del producto queramos obtener directamente

GET localhost:4000/productos/6

por id

Y podemos enviar una categoria como parametro para filtrar productos por categoria.

GET localhost:4000/productos?categoria="Hogar"

por cate

Verbo POST - Operación CREATE

Haciendo un POST a ese mismo endpoint podremos crear productos, de igual manera necesitaremos enviar el token de la misma manera que lo hicimos anteriormente y en el body deberemos enviar el JSON con los datos del nuevo producto que deseamos agregar.

Ruta
POST localhost:4000/productos/
Body

el id debe ser 0 para indicarle a la bd que es un nuevo producto

{
  "id": 0,
  "nombre": "Licuadora Ninja 3421",
  "categoria": "Hogar",
  "precio": 13500
}

Como podemos observar al enviar la petición obtenemos una respuesta que nos dice que el producto se ha agregado exitosamente y de igual manera si nos vamos para el PhpMyAdmin vamos a poder observar que ese registro a ha sido agregado a la base de datos.

post productos

Verbo PUT - Operación UPDATE

El PUT nos permitirá actualizar registros existentes en nuestra base de datos, la operación y los parámetros son prácticamente los mismos del POST, le enviamos el token y el JSON con los datos del productos a actualizar, especificando el id y los datos que se desean actualizar, por ejemplo:

Ruta
PUT localhost:4000/productos/
Body
{
    "id": 1,
    "nombre": "Samsung Galaxy S23U",
    "categoria": "Electrónica",
    "precio": 27560
}
Ejecución en Postman

put postman

Verbo DELETE - Operación DELETE

La operación DELETE de igual manera requerirá del token que ya habíamos obtenido previamente y de un JSON como body, en ese JSON solo irá el id del producto que deseamos eliminar de la base de datos.

Ruta
DELETE localhost:4000/productos/
Body
{
  "id":1
}
Tendría que devolver la respuesta de que el item ha sido eliminado con éxito con el código adecuado.

DELETE postman

NOTA

El endpoint de /usuarios se creó solo para poder crear usuarios de una manera un poco más robusta (con 2 tablas para poder aplicar seguridad) y por conveniencia 'NO tiene protección de rutas.'

Puede agregar nuevos usuarios haciendo un POST al endpoint localhost:4000/usuarios/ y pasandole un JSON en el body el cual debe ir con los siguientes datos:

  {
    "id":0,
    "nombre":"nombreUsuario",
    "usuario":"usuarioLogin",
    "password":"pass",
    "activo":1
  }

NOTA 2

LO DE LOS CORS SE LO QUEDAMOS DEBIENDO...

About

Proyecto final de clase de disenio digital IS-711

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •