Como usar codificação base64 no Power Query – Linguagem M

Para codificar em base64 na linguagem M, você pode usar a função Binary.ToText() com o segundo parâmetro definido como BinaryEncoding.Base64. Essa função converte um valor binário em uma sequência de caracteres de acordo com o esquema de codificação especificado.

Aqui está um exemplo de como codificar uma string em base64 na linguagem M:

let
    texto = "Texto que deseja codificar",
    binario = Text.ToBinary(texto),
    codificado = Binary.ToText(binario, BinaryEncoding.Base64)
in
    codificado

O código acima converte a string "Texto que deseja codificar" em um valor binário usando a função Text.ToBinary(). Em seguida, a função Binary.ToText() é usada para codificar o valor binário em base64. O resultado é uma sequência de caracteres que representa o valor binário codificado.

Para descodificar uma string em base64 de volta para sua forma original, você pode usar a função Text.FromBinary() com o segundo parâmetro definido como BinaryEncoding.Base64. Aqui está um exemplo:

let
    codificado = "VGV4dG8gcXVlIGRlc2VqYSBjcmlwdG9ncmFmYXI=",
    binario = Binary.FromText(codificado, BinaryEncoding.Base64),
    decodificado = Text.FromBinary(binario)
in
    decodificado

O código acima converte a string "VGV4dG8gcXVlIGRlc2VqYSBjcmlwdG9ncmFmYXI=" em um valor binário usando a função Binary.FromText() com o segundo parâmetro definido como BinaryEncoding.Base64. Em seguida, a função Text.FromBinary() é usada para decodificar o valor binário de volta para sua forma original. O resultado é a string “Texto que deseja codificar".

Como montar um cabeçalho Authorization de uma requisição de API Basic Auth com codificação

Neste exemplo abaixo você pode compreender melhor a forma de estruturar uma requisição REST e também como você montar cabeçalhos de requisições REST Basic Auth.

Isso pode te ajudar a colocar os dados mais dinâmicos, como um campo ou parâmetro para que o usuário possa informar o usuário de API e também a senha. Desta forma com apenas um aplicação você pode atender vários usuários.

O cabeçalho Authorization de uma requisição Basic Auth é formado pelo nome de usuário e a senha com “:” (dois pontos) e codificado em base64. Como exemplo: base64(usuario:senha), que se tornará dXN1YXJpbzpzZW5oYQ==; Vamos ver abaixo uma forma de resolver e dinamizar isto no código abaixo.

let
    Source = UsuarioAPI & ":" & SenhaAPI,
    Bytes = Text.ToBinary(Source),
    HashBasic = Binary.ToText(Bytes, BinaryEncoding.Base64),
    Fonte = Json.Document( 
        Web.Contents("https://api.dominio.com.br/public/api/customers,
            [
              Headers =[
                #"Content-type"="application/json",
                #"Authorization"="Basic " & HashBasic]
            ]
        )
    ),
    data = Fonte[data]
in
    data 

Esta é a vantagem do uso da linguagem M, a possibilidade de dinamizar campos como “UsuarioAPI” e “SenhaAPI” por meio de parâmetros no Power Query, tornando mais fácil a entrada desses valores pelo usuário final. Além disso, é possível realizar a conversão desses valores para base64 com facilidade, garantindo a segurança na transmissão de dados.

Dominar conceitos básicos da linguagem M pode trazer muitas facilidades no desenvolvimento de soluções tanto no Power BI quanto no Excel, permitindo uma maior automação de tarefas e otimização de processos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

3 comentários em “Como usar codificação base64 no Power Query – Linguagem M”

  1. Pingback: Como fazer paginação de API REST no Power Query - Misael Soares

Rolar para cima