Saltar al contenido principal
Tiempo de leer: 4 minutos

Cartero es una herramienta valiosa para trabajar con API, especialmente cuando se realizan pruebas y solicitudes ad hoc fuera de una solución de producción automatizada. En términos de dónde un desarrollador de Power BI puede encontrar útil a Postman, se encuentra en algún lugar entre «Pruébelo» de la documentación funcionalidad y una solución más digna de producción que incorpora herramientas como Azure DevOps, Logic Apps / Power Automate, un conector personalizado de Power BI, etc.

Las ideas de esta publicación amplían un publicación original de Carl de Souza. Carl muestra cómo obtener un token de acceso OAuth2, pero lo hace con valores codificados. Las solicitudes de API adicionales utilizan el token de la respuesta original, pero también proporciona manualmente este token a las siguientes llamadas a la API.

Los siguientes pasos asumen que ya está familiarizado con los conceptos básicos tanto de Postman como del API de Power BI. Regístrese para un Aplicación Power BI Azure Active Directory si aún no tiene uno, y también debe tener el alcance apropiado definido para sus tareas deseadas.

Agregar variables

Ampliación de la técnica Postman para utilizar variables en lugar de valores codificados, hace que el esfuerzo sea más automático y conveniente. En particular, al pasar el token de acceso a una variable para su reutilización en otras solicitudes de API, se elimina una copia y pegado manual » [token]”Cada vez que se realiza una nueva solicitud después de que expira un token anterior.

En última instancia, el objetivo es proporcionar un token de acceso a cualquier solicitud de API REST de Power BI sin tener que colocar manualmente el token de autorización en la solicitud. Lograr esto se basa en una variable de sesión (llamada temp_access_token en este caso como se ve en la captura de pantalla).

igraal_es-es
image-1-9855973

Para obtener este resultado, el primer paso es crear un nuevo Entorno en Postman. Luego, agregue cinco variables para reemplazar los valores codificados que se ven en la publicación original de Carl. He usado variables de entorno para poder usarlas en múltiples colecciones, pero reducir el alcance a las variables de colección también funcionaría.

image-2-5169317

Se utilizan cuatro variables en el cuerpo de la solicitud para obtener el token de acceso de https://login.microsoftonline.com/common/oauth2/token. Estas son solo variables de sesión local (especifique Valor actual pero haz no agregar datos sensibles a Valor inicial).
1) nombre de usuario – Usuario organizacional de Power BI
2) contraseña – Contraseña de organización de Power BI
3) Identificación del cliente – ID de su Aplicación de Azure Active Directory
4) client_secret – Secreto de su aplicación Azure Active Directory

NOTA: Postman actualmente no tiene una forma de proteger, ocultar o enmascarar los valores de las variables. Después de trabajar con productos de Microsoft como Azure Key Vault, se siente tan vulnerable simplemente almacenando una contraseña en una variable. Sin embargo, para su uso con el tipo de concesión de OAuth = contraseña, las variables de sesión son un paso adelante de codificarlas en el cuerpo de una solicitud. Esto es especialmente cierto si usa Postman para equipos y el espacio de trabajo está sincronizado. Solo manteniendo estos datos en Valor actual, al menos permanece local.

image-3-3060093

La quinta variable, temp_access_token, no se especifica manualmente como los otros cuatro. En su lugar, usará código en el Postman Pruebas tab para escribir el token de acceso a esa variable. Pruebas es un área para colocar código JavaScript que se ejecuta después de que ocurre la solicitud.

Obtener una ficha

La solicitud de API inicial obtiene el token de acceso utilizado en llamadas posteriores.

Agregar una nueva Enviar solicitud de https://login.microsoftonline.com/common/oauth2/token

por Encabezados, agregue:

Key = Content-Type
Value = application/x-www-form-urlencoded
image-4-3213815

por Cuerpo, que incluye los valores de las variables dentro de {{}}, agregue:

grant_type=password
&username={{username}}
&password={{password}}
&client_id={{client_id}}
&client_secret={{client_secret}}
&resource=https://analysis.windows.net/powerbi/api
image-5-9029208

Lo que sigue es la parte más útil. El código aquí le evita tener que copiar y pegar manualmente el token de portador en solicitudes adicionales.

En Pruebas, agregue:

var token;
try {
    var response = JSON.parse(responseBody); 
    token = response.access_token; 
    pm.environment.set("temp_access_token", token);
}
catch (err) {
    console.warn(err.message);
}

El código utilizado en Pruebas analiza la respuesta JSON y asigna el access_token proporcionada por Microsoft a la temp_access_token variable.

image-6-6290730

Una solicitud exitosa mostrará el access_token y otros datos.

image-7-9996736

También escribirá el token de acceso a la variable apropiada.

Utilice el token en solicitudes posteriores

Las solicitudes adicionales dependerán de lo que desee hacer con la API de Power BI. Sin embargo, el paso común implicará pasar el encabezado de autorización con el token almacenado como variable.

por Encabezados, agregue:

Key = Authorization
Value = Bearer {{temp_access_token}}
image-5301048

Por ejemplo, puedo usar esta configuración para expandir todos los datos del espacio de trabajo en mi inquilino usando el punto final de administración / grupos. Solo necesito el método, la URL y el encabezado de autorización dinámica. No se requiere copiar / pegar manualmente.

image-8-9805417

¡Incluso podría extender este método para incluir variables adicionales para URL de punto final relativas y más!

Si tiene alguna pregunta, comente a continuación y avíseme si utiliza Postman y encuentra útil este método.

[embedyt] https://www.youtube.com/playlist?list=PLyWe5-Lx84g1JrDY6Zh_dfV2oO-Cy3frl&layout=gallery[/embedyt]

Enlaces de pago

Como asociado de Amazon, gano con las compras que califican.

error: Atención: Contenido protegido.