Laboratorio PDF (API)
Laboratorio PDF (API)
Antecedentes / Escenario
La máquina virtual DEVASC incluye un simulador de API de biblioteca escolar con documentación de API y
una base de datos asociada. Puede usar el simulador sin conexión para explorar las API y probar su
funcionalidad.
En este laboratorio, aprenderá a usar el simulador de API de la biblioteca escolar para realizar llamadas a la
API para enumerar, agregar y eliminar libros. Más tarde, usará Postman para realizar estas mismas llamadas
a la API.
Recursos requeridos
• 1 PC con sistema operativo de su elección
• Virtual Box o VMWare
• Máquina virtual DEVASC
Laboratorio: explore las API de Rest con API Simulator y Postman
Instrucciones
b. Observe la flecha hacia abajo hacia el extremo derecho. Al hacer clic en cualquier lugar de la barra
/api/v1, se minimizará la lista de API y se girará la flecha hacia la derecha. Haga clic de nuevo en la
misma barra para volver a mostrar la lista de API.
Observe el bloqueo en el extremo derecho de varias de las API. El bloqueo indica que estas API
requieren que se use un token.
Laboratorio: explore las API de Rest con API Simulator y Postman
• Parámetros: hay varios parámetros de API opcionales. Estos se pueden usar para filtrar,
ordenaro paginar la salida. Estos serán referidos más adelante en este laboratorio.
Laboratorio: explore las API de Rest con API Simulator y Postman
• Tipo de contenido de respuesta: haga clic en aplicación/json para ver una lista de los
diferentes tipos de formatos de datos que se pueden ver en la información. Deje la selección
como application/json.
• Código: el código muestra 200 de forma predeterminada, lo que indica que la solicitud de API
del servidor fue un éxito como se muestra en la Descripción. (Todavía no ha enviado una
solicitud de API).
b. Observe que ahora tiene la opción de introducir información para los parámetros opcionales. Deje el
parámetroen blanco y haga clic en el botón Ejecutar.
En la sección Respuestas verás:
• Curl: El comando curl que puede usar para acceder a la misma información para la API /books.
• URL de solicitud: esta URL se utiliza en la solicitud de API, que se puede utilizar para solicitar
la misma información mediante curl, Postmany Python.
• Código: Este es el código de respuesta HTTP. 200 indica una llamada correcta.
Abra una ventana de terminal. Hagaclic y pegue el contenido del portapapeles en el terminal y pulse
Intro. Observe que esto proporciona la misma información que la interfaz OpenAPI de labiblioteca.
devasc@labvm:~$ curl -X GET "http://library.demo.local/api/v1/books" -H
"accept: application/json"
[
{
"id": 0,
"title": "Fundamentos de enrutamiento IP",
"autor": "Mark A. Sportack"
},
{
"id": 1,
"title": "Python para Dummies",
Laboratorio: explore las API de Rest con API Simulator y Postman
b. En la sección Parámetros, seleccione la flecha hacia abajo situada junto alparámetro includeISBN y
seleccione true.
c. Haga clic en Ejecutar.
Observe los siguientescambios en lasrespuestas:
• Curl ahora incluye el parámetro para ISBN.
curl -X GET "http://library.demo.local/api/v1/books?includeISBN=true" -H
"accept: application/json"
• El cuerpo de respuesta tiene la misma lista de libros que se mostró anteriormente, pero ahora
incluye el ISBN del libro.ç
Laboratorio: explore las API de Rest con API Simulator y Postman
Para minimizar el desplazamiento, cuando haya terminado con una API, puede cerrar esa ventana
específica de la API haciendo clic en cualquier lugar de la barra de título. Ahora puede ver todas las API
más fácilmente.
b. Observe que no hay parámetros. Haga clic en Pruébeloy, acontinuación, haga clic en Ejecutar.
Laboratorio: explore las API de Rest con API Simulator y Postman
d. El token se mostrará en el cuerpo respuesta. Seleccione la información entre las comillas, haga clic con
el botón derecho y copie la información en el portapapeles. Su token diferirá del que se muestra a
continuación.
{
"token":"cisco| KZZzteQbC5iV3HKEzB7hCJ6qHQXen4rLGh72YJKeVfs"
}
e. Desplácese hasta la parte superior de la página de la API de la biblioteca escolar y haga clic en el botón
verde Autorizar. Aparecerá el cuadro de diálogo Autorizaciones disponibles.
f. Haga clic con el botón secundario y pegue el token después de Valor y haga clic en Autorizar.
Observe que el nombre es X-API-KEY. Esta información junto con el token se utilizará más adelante en
Postman.
Laboratorio: explore las API de Rest con API Simulator y Postman
g. Cierre el cuadro de diálogo Autorizaciones disponibles y vuelva a la lista de API. Observe que los
bloqueos de varias de las API ahora han cambiado. Estas API ya están disponibles para su uso.
h. Haga clic en la barra de la API POST /loginViaBasic para cerrar la ventana.
b. Observe en Parámetros que la carga útil es necesaria. Esto significa que esta API requiere
información para este parámetro en el formato especificado por el tipo de contenido Parameter,que is
JSON.
f. Compruebe que la publicación se realizó correctamente en la respuesta del servidor. Un Código de 200
significa que la publicación fue un éxito. Debería ver el libro que agregó en el cuerpo Respuesta junto
con una nueva identificación. También verá información actualizada para curl y la URL de solicitud.
g. Para agregar otro libro, modifique la identificación, el título y el autor con la información que se
muestra a continuación.
{
"id": 5,
"title": "31 días antes de su examen CCNA",
"autor": "Allan Johnson"
}
Nota:Si obtuviste un código 401, comprueba el texto del cuerpo de la respuesta. Lo más probable es
que haya recibido una respuesta de "error": "Clave de API no válida". Esto se debe a que no ingresó
todos los caracteres para su clave de API. O posiblemente, agregue un espacio innecesario. Vuelva al
paso anterior y repita el proceso de autorización.
j. Haga clic en la barra de la API POST /libros para cerrar la ventana.
k. Puede verificar que los libros se agregaron a la página Nuestros libros. Vuelva a la pestaña Biblioteca
escolar en su navegador(http://library.demo.local) y actualice la página. Tenga cuidado de no cerrar la
pestaña API de la biblioteca escolar. Si lo hace, deberá volver a autenticarse.
{
"id": 0,
"title": "Fundamentos de enrutamiento IP",
"autor": "Mark A. Sportack"
},
{
"id": 1,
"title": "Python para Dummies",
"author": "Stef Maruch Aahz Maruch"
},
{
"id": 2,
"title": "Linux para Networkers",
"autor": "Cisco Systems Inc."
},
{
"id": 3,
"title": "NetAcad: 20 Years Of Online-Learning",
"autor": "Cisco Systems Inc."
},
{
"id": 4,
"title": "Fundamentos de IPv6",
"autor": "Rick Graziani"
},
{
"id": 5,
"title": "31 días antes de su examen CCNA",
"autor": "Allan Johnson"
}
]
d. Haga clic en Ejecutar. Observe la información proporcionada por Curl y Request URL.
• Curl - Este es el comando curl para realizar la misma función usando curl.
• URL de solicitud: esta es la URL que se puede usar para obtener la misma información
utilizando Postman y Python.
Compruebe que la obtención se realizó correctamente en la respuesta del servidor. Un Código de
200 significa que la publicación fue un éxito. En el cuerpo de Respuesta verás el libro que solicitaste
con el id de 4.
{
"id": 4,
"title": "Fundamentos de IPv6",
"autor": "Rick Graziani"
}
Nota: No cierre la pestaña School Library API en el navegador Chromium. Utilizará la documentación de la
API en la siguiente parte.
b. Haga clic en la flecha hacia abajo junto a GET para ver las diferentes operaciones de API, incluidas
GET, POST y DELETE. Deje la selección en GET. Haga clic en la flecha hacia arriba junto a GET para
cerrar la lista.
c. Introduzca la URL de la solicitud.
1) Vuelva a la pestaña API de la biblioteca escolar en Chromium y, si es necesario, expanda la API
GET /books.
2) En Solicitar URL, seleccione, haga clic con elbotón derecho y copie la URL en el portapapeles:
http://library.demo.local/api/v1/books
3) Vuelva a Postman y pegue la URL junto a GET donde dice: "Ingrese la URL de solicitud".
Nota:Si pegar agrega una línea debajo de la URL, elimine la línea adicional.
Laboratorio: explore las API de Rest con API Simulator y Postman
d. Haga clic en Enviar. Para comprobar que la solicitud de API se realizó correctamente, ahora verá una
respuesta que incluye el código de estado 200 OK en verde. Desplácese hacia abajo hasta la sección
Cuerpo para ver la respuesta. Observe que el valor predeterminado es Pretty y json.
[
{
"id": 0,
"title": "Fundamentos de enrutamiento IP",
"autor": "Mark A. Sportack"
},
{
"id": 1,
"title": "Python para Dummies",
"author": "Stef Maruch Aahz Maruch"
},
{
"id": 2,
"title": "Linux para Networkers",
"autor": "Cisco Systems Inc."
},
{
"id": 3,
"title": "NetAcad: 20 Years Of Online-Learning",
"autor": "Cisco Systems Inc."
},
{
"id": 5,
"title": "31 días antes de su examen CCNA",
"autor": "Allan Johnson"
}
]
Laboratorio: explore las API de Rest con API Simulator y Postman
Nota:Puede guardar la salida JSON en un archivo utilizando el botón Guardar respuesta sobre la salida.
Esto no es necesario para este laboratorio.
f. Si es necesario, desplácese hacia abajo hasta la sección Cuerpo para ver su nuevo token. Su token
será diferente al que se muestra aquí.
{
"token": "cisco|5xSUHYFDvIAoCRv0LqWVSDcjJAwWjg18vMml6u2lm1I"
}
{
"id": 4,
"title": "Fundamentos de IPv6",
"autor": "Rick Graziani"
}
{
"id": 5,
"title": "31 días antes de su examen CCNA",
"autor": "Allan Johnson"
},
]
"id": 5,
"title": "31 días antes de su examen CCNA",
"autor": "Allan Johnson"
},
{
"id": 2,
"title": "Linux para Networkers",
"autor": "Cisco Systems Inc.",
"isbn": "000-0000000123"
},
{
"id": 3,
"title": "NetAcad: 20 Years Of Online-Learning",
"autor": "Cisco Systems Inc.",
"isbn": "000-0000001123"
},
{
"id": 0,
"title": "Fundamentos de enrutamiento IP",
"autor": "Mark A. Sportack",
"isbn": "978-1578700714"
},
{
"id": 4,
"title": "Fundamentos de IPv6",
"autor": "Rick Graziani",
"isbn": "978 1587144778"
},
{
"id": 1,
"title": "Python para Dummies",
"author": "Stef Maruch Aahz Maruch",
"isbn": "978-0471778646"
}
]
Observe que la dirección URL de la solicitud ahora incluye los parámetros. Verás esto de nuevo en
Postman.
http://library.demo.local/api/v1/books?includeISBN=true&sortBy=author
f. Vuelve a Postman y ve a la primera pestaña de la API, GET http://library.demo.local/api/v1/books.
Ahora incluirá algunos de los parámetros del sitio web de la API de la biblioteca escolar.
g. Haga clic en Parámetros. Verá en Query Params cuadros de entrada para KEY y VALUE.
Introduzca la siguiente información:
• En KEY, escriba includeISBN y en Value enter true
Observe que se incluirá automáticamente una marca de verificación a la izquierda del valor y se
agregará una nueva fila.
• En CLAVE, escriba sortBy y en Valor, escriba author
Laboratorio: explore las API de Rest con API Simulator y Postman
Observe que al introducir estos parámetros de consulta, ha actualizado la dirección URL original junto al
GET. Esta es la misma URL de solicitud que vio en el sitio web de la API de la biblioteca escolar para
esta misma llamada a la API. Esta es la URL que Postman utilizará, con estos parámetros de consulta al
realizar la llamada a la API.
http://library.demo.local/api/v1/books?includeISBN=true&sortBy=author
h. Haga clic en Enviar.
Observe en el Cuerpo,ahora muestra la misma lista de libros, ordenados por autor e incluyendo los ISBN
que vio en el sitio web de la API de la Biblioteca Escolar.
[
{
"id": 5,
"title": "31 días antes de su examen CCNA",
"autor": "Allan Johnson"
},
{
"id": 2,
"title": "Linux para Networkers",
"autor": "Cisco Systems Inc.",
"isbn": "000-0000000123"
},
{
"id": 3,
"title": "NetAcad: 20 Years Of Online-Learning",
"autor": "Cisco Systems Inc.",
"isbn": "000-0000001123"
},
{
"id": 0,
"title": "Fundamentos de enrutamiento IP",
"autor": "Mark A. Sportack",
"isbn": "978-1578700714"
},
{
"id": 4,
"title": "Fundamentos de IPv6",
"autor": "Rick Graziani",
"isbn": "978 1587144778"
},
{
"id": 1,
"title": "Python para Dummies",
"author": "Stef Maruch Aahz Maruch",
"isbn": "978-0471778646"
}
]
Laboratorio: explore las API de Rest con API Simulator y Postman
Step 1: Abra Visual Studio (VS) Code y navegue hasta el directorio de la biblioteca escolar.
a. Abra laoda VS Cdesde el botón Menú o haciendo doble clic en el icono del escritorio.
b. Haga clic en Archivo > Abrir carpeta... , vaya a la carpeta labs/devnet-src/school-library y haga clic
en Aceptar.
solicitudes de importación
importar json
de faker import Faker
Laboratorio: explore las API de Rest con API Simulator y Postman
>>> falso. < presione la tecla Tab dos veces, asegúrese de incluir el
período>
¿Mostrar las 252 posibilidades? (y o n)
fake.add_provider( fake.future_datetime( fake.pyfloat(
fake.address( fake.generator_attrs fake.pyint(
fake.am_pm( fake.get_formatter( fake.pyiterable(
<se omitió la >
fake.catch_phrase( fake.ipv4_public( fake.random_element(
fake.chrome( fake.isbn10( fake.random_int(
fake.city( fake.isbn13( fake.random_letter(
<se omitió la >
fake.date_time_ad( fake.msisdn( fake.texts(
fake.date_time_between( fake.name( fake.time(
<se omitió la >
fake.future_date( fake.pydict( fake.zipcode_plus4(
>>>
Laboratorio: explore las API de Rest con API Simulator y Postman
Pregunta:
b. Usando los tres mensajes resaltados en el Paso 2d anterior, ingrese el comando que imprimiría la
siguiente salida falsa.
Escriba sus respuestas aquí.
>>> imprimir('Mi nombre es {} y escribí "{}" (ISBN {}).'.
format(fake.name(),fake.catch_phrase(),fake.isbn13()))
Mi nombre es Gary Castaneda y escribí "Organic incremental neural-net" (ISBN 978-0-
669-01935-3).
>>>
c. Más adelante en el programa, se utiliza un bucle para iterar a través de estos tres métodos para crear
entradas para la Biblioteca Escolar. Escriba lo siguiente para generar 10 nombres aleatorios. Después
del "..." deberá presionar retorno por segunda vez.
>>> para i en el rango(10):
... imprimir(fake.name())
...
Kevin Moyer
Dr. Christopher Green
Spencer Jensen
Whitney Guzmán
Nicole Scott
Tammy Lewis
Craig Edwards
Miguel Díaz
Ryan Mccoy
Terry Rocha
>>>
Laboratorio: explore las API de Rest con API Simulator y Postman
b. Si la llamada no se realiza correctamente (el código de estado HTTP no es igual a 200), se genera una
excepción y se imprime en la ventana del terminal. De nuevo, observe el uso de una cadena f para
generar el mensaje de excepción. Puede probar el código de excepción cambiando una de las variables
del paso 4.
si r.status_code == 200:
return r.json()["token"]
más:
raise Exception(f"Status code {r.status_code} and text {r.text}, al intentar
Auth.")
Laboratorio: explore las API de Rest con API Simulator y Postman
b. El módulo Faker() se establece en una variable named fake. A for loop luego itera 100 veces. La
variable i se utiliza más adelante en el bucle para establecer el valor de la clave id para cada nuevo
libro de 4 hasta 10 4 y sin incluir 104.
Nota:Si desea conservar los dos libros anteriores agregados anteriormente en este laboratorio, cambie
el rango a (6, 106).
Nota del instructor para los revisores de LosÁngeles: Su versión del script puede tener el rango de 4
a 105, lo que agregará 101 libros. Cambie el rango y guarde el script para agregar solo 100 libros. Esto
se actualizará en la versión GA de la máquina virtual DEVASC.
falso = Faker()
para i en el rango(4, 104):
c. A continuación, tres variables contienen el valor de los métodos invocados desde el módulo Faker():
catch_phrase(), name()e isbn13().
fakeTitle = fake.catch_phrase()
fakeAuthor = fake.name()
fakeISBN = fake.isbn13()
d. Recuerde que el parámetro de carga útil para la API de libros requiere JSON en el siguiente formato:
{
"id": 0,
"title": "cadena",
"autor": "cadena"
}
Laboratorio: explore las API de Rest con API Simulator y Postman
La variable book se construye utilizando las tres claves requeridas para el parámetro de carga útil y los
valores de las tres variables falsas.
book = {"id":i, "title": fakeTitle, "author": fakeAuthor, "isbn": fakeISBN}
e. Finalmente, la función addBook se llama pasar las variables book y apiKey. Debido a que addBook
es parte del bucle, se llamará 10 1 veces,una vez cada una para el ID de libro 4 a 105.
Pregunta: