¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Fundamentos de API

Aquí está la lección completa para leer. Crea una cuenta gratuita para practicarla en un laboratorio en vivo.

Laboratorio de contenedores7 min de lectura8 comandos

Qué vas a hacer

Una base de datos guarda información en tablas. Una API web permite que un programa pida esa información a través de internet. Primero creas una tabla en una base de datos de verdad. Después la lees y la cambias con peticiones web enviadas con curl, igual que una aplicación del móvil habla con un servidor.

Antes de empezar

Nota

Pulsa Iniciar el laboratorio en la barra de la parte superior de esta lección y espera hasta 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. Crea una tabla

La base de datos se llama shop. Este paso crea una tabla llamada notes (notas) con dos columnas: un id que se numera solo y el texto, body, de cada nota. PGPASSWORD es la contraseña, para que no te la pida.

Comando
export PGPASSWORD=shop

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
psql -h db -U shop -c "create table 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.

2. Mete una nota

insert añade una fila. El segundo comando le dice a la API que vuelva a leer la base de datos. La API la leyó una vez al arrancar, antes de que existiera notes.

Comando
psql -h db -U shop -c "insert into notes (body) values ('hello')"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
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.

3. Léela por la web

La API da a la tabla una dirección web. curl la pide y la respuesta llega en JSON, un formato de texto que los programas leen con facilidad: [{"id":1,"body":"hello"}]. -w "\n" termina la respuesta con un salto de línea, para que quede en su propia línea debajo del comando.

Comando
curl -s -w "\n" http://api:3000/notes

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

4. Añade una nota por la web

Una petición POST añade una fila. La parte -d es la nota nueva, en JSON. Después vuelve a leer la tabla: ahora hay dos notas.

Comando
curl -s -X POST -H "Content-Type: application/json" -d '{"body":"from curl"}' http://api:3000/notes

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Comando
curl -s -w "\n" http://api:3000/notes

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

5. Pide menos

Si añades palabras a la dirección, pides solo una parte de la tabla. Esta petición pide solo la nota cuyo body es igual a hello.

Comando
curl -s -w "\n" "http://api:3000/notes?body=eq.hello"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

6. Mira qué se conserva

Pulsa Detener el laboratorio en la barra y después Iniciar el laboratorio otra vez, y vuelve a ejecutar el paso 3: tus notas siguen ahí. La base de datos guarda sus archivos en un volumen con nombre, y la plataforma guarda el volumen. Todo lo que escribas fuera de un volumen se pierde cuando el laboratorio se detiene. Los contenedores en producción (en los servidores reales) funcionan igual.

Para el profesorado

Consejo

Esta lección es un ejemplo pequeño de una lección practicada en un laboratorio: los pasos y los botones Ejecutar son la lección, y el laboratorio es la copia de cada alumno. El laboratorio tiene dos servicios, una base de datos y una API, que se encuentran por su nombre, como en una aplicación real. Cópiela en su propio módulo y cámbiela, o cree una desde cero con el menú Laboratorio del editor de lecciones.

Sobre este laboratorio y su código: Laboratorio de PostgreSQL y PostgREST: una base de datos y una API REST en el navegador

¿Enseñas a una clase? Asigna estas lecciones a tus estudiantes con calificación y un laboratorio para cada uno.