Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
clase:daw:daw:1eval:tema04 [2020/09/10 20:31] admin [REST] |
clase:daw:daw:1eval:tema04 [2021/10/14 21:30] (actual) admin [Ejercicios] |
||
---|---|---|---|
Línea 70: | Línea 70: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
Línea 83: | Línea 84: | ||
< | < | ||
- | La cabecera '' | + | * La cabecera '' |
- | Muchas veces hay ademas problemas con la codificación si es '' | + | * Por otro lado notar que '' |
</ | </ | ||
Línea 108: | Línea 109: | ||
* '' | * '' | ||
- | * '' | + | * '' |
- | * '' | + | * '' |
* '' | * '' | ||
Línea 128: | Línea 129: | ||
| | ||
===== REST ===== | ===== REST ===== | ||
- | Podríamos decir que REST es usar toda la potencia de HTTP en nuestras propias aplicaciones. Suele usar Por forma general el formato usado en los datos es [[https:// | + | Podríamos decir que REST es usar toda la potencia de HTTP en nuestras propias aplicaciones. Suele usar Por forma general el formato usado en los datos es [[https:// |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Esta última característica yo creo que es la que mejor explica que es REST: Si algo ya existe en HTTP y REST siempre funciona bajo HTTP, ¿porque no usar entonces todo lo que ofrece HTTP?. Por lo tanto cuando necesitemos algo en nuestra aplicación siempre debemos preguntarnos , ¿como resuelve este problema ya el protocolo HTTP? Y usarlo en vez de crear nuestra solución. | + | |
- | + | ||
- | Hablando de una forma sencillo lo que nos dice es como debemos comunicarnos desde la página web ((o desde una aplicación movil ,desde una aplicación de escritorio, desde otro servidor, etc.)) con el servidor | + | |
- | * Las operaciones a realizar | + | |
- | * La Estructura de la URI | + | |
- | * Tratamiendo de errores | + | |
- | * El formato de los datos | + | |
- | * El estado de la aplicación | + | |
- | * Cache | + | |
- | * Etc. | + | |
Línea 156: | Línea 143: | ||
- | ==== La Estructura de la URI ==== | + | ==== La Estructura de la URL ==== |
- | Ya tenemos las operaciones, | + | Veamos |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | Con todas estas reglas vamos a ver las URI que se suelen usar en una aplicación. Vamos a usar como ejemplo | + | |
^ Descripción ^ URL ^ Método HTTP ^ JSON Enviado ^ JSON Retornado ^ | ^ Descripción ^ URL ^ Método HTTP ^ JSON Enviado ^ JSON Retornado ^ | ||
| Obtener un libro | ''/ | | Obtener un libro | ''/ | ||
- | | Listado de libros | ''/ | + | | Listado de libros | ''/ |
| Añadir un libro | ''/ | | Añadir un libro | ''/ | ||
| Actualizar un libro | ''/ | | Actualizar un libro | ''/ | ||
- | | Borrar un usuario | + | | Borrar un libro | ''/ |
Donde pone '' | Donde pone '' | ||
Línea 184: | Línea 166: | ||
===== Servidor REST en NodeJS ===== | ===== Servidor REST en NodeJS ===== | ||
+ | Ahora vamos a ver como modificar nuestro servidor en NodeJS para poder leer y modificar cosas relacionadas con HTTP. | ||
- | + | El ejemplo contiene: | |
- | + | * Leer cabeceras | |
- | | + | * Aceptar varios métodos |
- | | + | * Retornar varios códigos de estado |
- | * Aceptar varios métodos | + | * Devolver cabeceras |
- | * Retornar varios códigos de estado | + | |
- | * Devolver cabeceras. | + | |
<sxh javascript> | <sxh javascript> | ||
Línea 220: | Línea 201: | ||
response.send(' | response.send(' | ||
}); | }); | ||
- | app.delete('/ | + | app.delete('/ |
response.status(200); | response.status(200); | ||
- | response.send(' | + | response.send(' |
}); | }); | ||
- | app.delete('/ | + | app.delete('/ |
response.status(404); | response.status(404); | ||
- | response.send(' | + | response.send(' |
}); | }); | ||
Línea 235: | Línea 216: | ||
===== Ejercicios ===== | ===== Ejercicios ===== | ||
+ | ==== Ejercicio 1 ==== | ||
+ | Usando el programa [[https:// | ||
- | | + | Debes conectarte al servidor " |
- | * {{biblioteca-original.json.zip|}} | + | |
- | | + | * Envía la petición HTTP sin cabeceras. ¿Porque ha fallado? |
+ | * Añade ahora la cabecera '' | ||
+ | * Haz una nueva petición a la URL "/ | ||
+ | |||
+ | |||
+ | |||
+ | ==== Ejercicio 2 ==== | ||
+ | En tu máquina debes instalar lo siguiente: | ||
+ | * Descargar el fichero {{biblioteca-original.json.zip|}} y descomprimelo. Mira el contenido del fichero '' | ||
+ | | ||
+ | |||
+ | npm install -g json-server | ||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | json-server --watch biblioteca-original.json | ||
+ | |||
+ | * Navega a [[http:// | ||
+ | |||
+ | <sxh json> | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Indica las siguientes | ||
+ | |||
+ | ^ Descripción | ||
+ | | Obtener el libro de "La fundación" | ||
+ | | Borrar el libro de "Yo Robot" | | ||
+ | | Obtener todos los libros | | | | | ||
+ | | Añadir un nuevo género llamado " | ||
+ | |||
+ | |||
+ | ==== Ejercicio 3 ==== | ||
+ | Desde Firefox instala el plugin de [[https:// | ||
+ | |||
+ | Lanza las URL del ejercicio anterior. Si hay datos de entrada los deberás enviar en el campo de " | ||
+ | |||
+ | ==== Ejercicio 4 ==== | ||
+ | Modifica el servidor hecho en NodeJS de forma que: | ||
+ | * En la URL ''/ | ||
+ | * En la URL ''/ | ||
+ | |||
+ | <note tip> | ||
+ | Este ejercicio **no** tiene nada que ver con el ejercicio del JSON Server, se hace todo sobre el código de NodeJS de express. | ||
+ | </ | ||