Lo que vas a hacer
En Fundamentos de API leíste notas y añadiste otras. Una API web hace cuatro cosas con los datos: crear, leer, actualizar y borrar, y cada una es un tipo distinto de petición. Aquí haces actualizar y borrar: cambias una nota y borras otra. Además ves el código de estado con el que responde la API cada vez: un número que dice cómo ha ido.
Antes de empezar
Nota
Pulsa Iniciar el laboratorio en la barra de arriba de esta lección y espera a que diga que está en marcha. La primera vez tarda unos segundos, porque primero arranca la base de datos. Cada botón Ejecutar de abajo escribe su comando en el terminal de tu laboratorio, uno detrás de otro y en la misma sesión. Para verlos, o para escribir los tuyos, pulsa Abrir el terminal (pestaña nueva) en la barra.
1. Comprueba que hay notas que cambiar
Estos comandos crean la tabla notes si Fundamentos de API no la creó, meten dos notas y le dicen a la API que vuelva a leer la base de datos. Si hiciste la primera lección, la tabla ya existe: psql lo avisa con un NOTICE, sigue adelante y añade otras dos notas. No pasa nada. ?order=id lista las notas por su id, y -w "\n" termina la respuesta con un salto de línea, para que quede debajo del comando.
export PGPASSWORD=shopSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
psql -h db -U shop -c "create table if not exists notes (id serial primary key, body text not null)"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
psql -h db -U shop -c "insert into notes (body) values ('one'), ('two')"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
psql -h db -U shop -c "notify pgrst, 'reload schema'"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
curl -s -w "\n" "http://api:3000/notes?order=id"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
2. Cambia una nota
Una petición PATCH cambia una parte de una fila. ?id=eq.1 dice cuál: la fila cuyo id es igual a 1. La API responde 204, que significa "hecho, y no hay nada que devolver". Lee la tabla otra vez y verás que la nota ha cambiado.
curl -s -o /dev/null -w "%{http_code}\n" -X PATCH -H "Content-Type: application/json" -d '{"body":"changed"}' "http://api:3000/notes?id=eq.1"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
curl -s -w "\n" "http://api:3000/notes?id=eq.1"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
3. Borra una nota
Una petición DELETE borra las filas que coinciden, aquí la que tiene el id 2. Otra vez 204. Lee la tabla otra vez y ya no está.
curl -s -o /dev/null -w "%{http_code}\n" -X DELETE "http://api:3000/notes?id=eq.2"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
curl -s -w "\n" "http://api:3000/notes?order=id"Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
4. Lee los códigos de estado
Cada respuesta empieza con un código de estado. 200 significa "aquí lo tienes", 201 "lo he creado", 204 "hecho" y 404 "no existe eso". Si pides una tabla que no existe, recibes un 404; si pides la que sí existe, recibes un 200.
curl -s -o /dev/null -w "%{http_code}\n" http://api:3000/notesSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
curl -s -o /dev/null -w "%{http_code}\n" http://api:3000/nothingSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Para el profesorado
Consejo
Esta lección es un pequeño ejemplo de una lección practicada en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia propia de cada alumno. Usa el mismo laboratorio de base de datos y API que Fundamentos de API. La base de datos guarda sus archivos en un volumen que la plataforma conserva, así que las notas del alumno siguen ahí la próxima vez. Puede copiar la lección en su propio módulo y cambiarla, o crear otra desde cero con el menú Laboratorio del creador de lecciones.