
Compartir:
Julia está comprometida con la capacitación de los desarrolladores mediante la creación de tutoriales, guías y recursos prácticos. Con experiencia en divulgación y educación, su objetivo es hacer que la tecnología sea más accesible y mejorar la experiencia general de los desarrolladores. A menudo se la puede encontrar en eventos de la comunidad local.
Uso de variables y encadenamiento de peticiones en Postman
Tiempo de lectura: 4 minutos
En Vonage, utilizamos OpenAPI para describir todas nuestras API, y también hacemos que esas especificaciones disponibles públicamente. Una de las cosas que más nos gusta hacer con un archivo OpenAPI que no hemos visto antes es importarlo a Postman. Por lo tanto, hemos decidido devolver el favor y crear una Colección Postman para nuestras API, de modo que evaluarlas y explorarlas sea más rápido y fácil que nunca.
En este artículo, destacamos cómo puedes hacer que la exploración de tus APIs en Postman sea aún más accesible. Utilizaremos Colección Postman de APIs de Vonage como ejemplo, así que asegúrate de revisar la lista de requisitos previos si quieres seguirnos.
Requisitos previos
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.
Las variables son tus amigas
Al importar por primera vez la Colección de API de Vonage en Postman, verás una API de Vonage en la carpeta Colecciones en el lado izquierdo de la pantalla.

Es posible que también note "36 solicitudes" bajo el nombre de la colección. Dependiendo del tipo de autenticación, son más o menos 36 veces las que alguien tendría que añadir api_key y api_secret como parámetros de solicitud.
Afortunadamente, Postman soporta variables de entorno, globales y a nivel de colección, que harán que la experiencia sea mucho más fluida y menos dolorosa. En lugar de realizar tareas repetitivas, como rellenar los mismos valores de parámetros para cada solicitud, estas variables nos permiten extraer esos valores de forma dinámica.
Nuestra colección incluye Entorno Vonage donde puedes proporcionar tu clave y secreto, y luego todas las solicitudes utilizarán esos valores en adelante.

De esta forma, realizar una solicitud sencilla como consultar el saldo de su cuenta con la API de Account se convierte en una tarea de un solo clic.

Otras solicitudes pueden necesitar parámetros adicionales. Por ejemplo, para enviar un SMSdeberá introducir to, from y text en el cuerpo de la solicitud, pero api_key y api_secret se rellenarán automáticamente. También puede optar por añadir cualquiera de estos parámetros como variables, como el to se ha guardado como variable de colección en la solicitud que se muestra a continuación. Para ello, edite directamente la colección o el entorno, o seleccione el valor codificado que desea sustituir por una variable y haga clic en Establecer como variable > Establecer como nueva variable.

Encadenamiento de solicitudes
Las variables en Postman son geniales, pero no son una herramienta universal para arreglar todas las cosas engorrosas.
Por ejemplo, al usar una de las API de Vonage que autentica usando JWTs, necesitarás generar ese JWT antes de hacer tu solicitud. Para generar el JWT, necesitarás un ID de aplicación y una clave privada, los cuales obtendrás una vez que crees una aplicación de Vonage. Eso equivale a tres solicitudes separadas que uno tendría que hacer, lo cual puede confundir a alguien que explora la API por primera vez.
Afortunadamente, también existe una solución para los requisitos previos de varios pasos: encadenar solicitudes.
Postman ofrece dos áreas de scripting, Guión Pre-Solicitud y Pruebasen las que puede escribir cualquier código JavaScript que desee, incluso realizar otra solicitud HTTP.
El guión previo a la solicitud
Voice API de Vonage realiza la autenticación mediante tokens web JSON (JWT), de modo que para enviar una Crear una llamada saliente primero debemos
Crear una aplicación de Vonage con la API de Applications
Agarra el
application_idyprivate_keydel objeto de respuesta y úsalos para generar un JWT.
// Check if we already have a JSON Web Token, continue if not
if (!pm.environment.has("JWT")) {
var btoa = require('btoa')
let base64keyandsecret = btoa(`${pm.environment.get("api_key")}:${pm.environment.get("api_secret")}`)
// (1) Create a Voice Application by making a request to the Vonage Applications API
pm.sendRequest({
url: 'https://api.nexmo.com/v2/applications',
method: 'POST',
header: [`Authorization:Basic ${base64keyandsecret}`, "Content-Type: application/json"],
body: JSON.stringify({
"name": "Demo Postman Application",
"capabilities": {
"voice": {
"webhooks": {
"answer_url": {
"address": "https://example.com/webhooks/answer",
"http_method": "POST"
},
"event_url": {
"address": "https://example.com/webhooks/event",
"http_method": "POST"
}
}
}
}
})
}, (err, res) => {
// (2) Generate JWT using the application ID as a claim and sign it with the private key
pm.sendRequest({
url: 'https://jwtapi-dev.netlify.app/.netlify/functions/generate',
method: 'POST',
header: ["Content-Type: application/json"],
body: JSON.stringify({
algorithm: "RS256",
private_key: res.json().keys.private_key,
claims: {
application_id: res.json().id,
exp: parseInt((Date.now() / 1000) + 3600, 10)
}
})
}, (err, res) => {
pm.environment.set("JWT", res.json().signed_jwt)
})
})
}
Pruebas: ¿Por qué no un guión posterior a la solicitud?
Postman te permite añadir pruebas a solicitudes individuales, carpetas y colecciones. Si bien estas pruebas son inmensamente útiles para asegurar que tu API se comporta como se espera y para fines de depuración, aquí hay un truco: Las pruebas son scripts de JavaScript que se ejecutan después una solicitud. Esto significa que la forma en que utilizamos el Script Pre-Solicitudpodemos aprovechar al máximo la función Prueba también.
En nuestro ejemplo de llamada de voz, una vez completada con éxito, estoy guardando el archivo voice_call_uuid como una variable de colección utilizando la función pm.collectionVariables.set() . Esta variable me resultará útil si decido realizar otras solicitudes relacionadas con la Voice API. Alternativamente, en caso de fallo, borro el valor JWT mediante la expresión pm.environment.unset("JWT") para poder enviar mi solicitud de nuevo y generar un nuevo JWT.
if (pm.response.code == "201") {
pm.collectionVariables.set("voice_call_uuid", pm.response.json().uuid);
} else {
pm.environment.unset("JWT")
}Más información sobre la definición de variables en scripts en la documentación de documentación de Postman.
El cuerpo de la solicitud
Por último, vamos a juntar todo esto para hacer una llamada de voz de texto a voz. Puede utilizar el siguiente fragmento y proporcionar los caracteres to y from como variables o valores codificados. Ten en cuenta que to es el número de destino al que vas a llamar, y from es uno de tus números de Vonage. Obtén uno en tu panel de control si aún no lo has hecho.
En NCCO es nuestro Objeto de Control de Llamada, que enumera todas las acciones a realizar una vez contestada la llamada. Consulte la Referencia NCCO y vea qué otras acciones podría incluir en su flujo de llamadas.
{
"to": [
{
"number": {{to}},
"type": "phone"
}
],
"from": {
"number": {{from}},
"type": "phone"
},
"ncco": [
{
"action": "talk",
"text": "This is a text to speech call from Vonage"
}
]
}Esta solicitud ya está lista, así que pulse el botón Enviar Enviar. Enhorabuena. ¿Y sabes qué es lo mejor de todo esto? Si guarda los cambios y Compartir colecciónla siguiente persona sólo tendrá que rellenar los valores de las variables que faltan y pulsar el botón Enviar y pulsar el botón Enviar.
¿Cómo utilizarías estas prácticas funciones de Postman? ¿Tienes algún truco o consejo? Cuéntanoslo; ¡estamos deseando ver lo que se te ocurre!
¿Y ahora qué?
Compartir:
Julia está comprometida con la capacitación de los desarrolladores mediante la creación de tutoriales, guías y recursos prácticos. Con experiencia en divulgación y educación, su objetivo es hacer que la tecnología sea más accesible y mejorar la experiencia general de los desarrolladores. A menudo se la puede encontrar en eventos de la comunidad local.
