¿Cómo consumir una API REST con VBA?

En la era de la información interconectada, acceder y utilizar datos de diversas fuentes se ha vuelto esencial. Una forma común de lograrlo es a través de API REST (Interfaz de Programación de Aplicaciones Representacionales del Estado Transferido). Estas API permiten que las aplicaciones se comuniquen y compartan datos de manera eficiente. ¿Sabías que también puedes consumir API REST directamente en Excel utilizando VBA (Visual Basic for Applications)? Aquí te explicamos cómo hacerlo en unos simples pasos..

Conocer la API REST

Antes de empezar, necesitas conocer la API que deseas consumir. Esto implica comprender la estructura de la URL, los parámetros requeridos, los métodos HTTP permitidos y el formato de los datos que la API devuelve (generalmente JSON o XML).

Solicitud GET

VBA
Sub ConsumirAPIREST()
    Dim URL As String
    Dim JSONString As String
    Dim HTTPReq As New MSXML2.xmlhttp60
    
    URL = "URL_de_la_API_aqui"
    
    HTTPReq.Open "GET", URL, False
    HTTPReq.setRequestHeader "Content-Type", "application/json"
    HTTPReq.send ""
    
    JSONString = HTTPReq.responseText
    
    ' Ahora puedes procesar el JSONString según tus necesidades
    ' Por ejemplo, puedes utilizar la biblioteca VBA-JSON para analizar el JSON
    
    ' Aquí hay un ejemplo utilizando VBA-JSON (debes haber importado la biblioteca)
    Dim JsonParser As Object
    Set JsonParser = JsonConverter.ParseJson(JSONString)
    
    ' Ahora puedes acceder a los datos y realizar operaciones con ellos
    Debug.Print JsonParser("campo1")
    Debug.Print JsonParser("campo2")
    
    Set HTTPReq = Nothing
End Sub

Solicitud POST

VBA
Sub ConsumirAPIREST_POST()

    Dim httpRequest As New MSXML2.xmlhttp60
    
    Dim url As String
    url = "https://api.example.com/post-endpoint" ' Cambia la URL por la URL real del endpoint POST
    
    Dim requestData As String
    requestData = "{""key"": ""value""}" ' Cambia esto por los datos que deseas enviar en formato JSON
    
    ' Realiza una solicitud POST a la API
    httpRequest.Open "POST", url, False
    httpRequest.setRequestHeader "Content-Type", "application/json"
    httpRequest.send requestData
    
    ' Obtiene la respuesta de la API
    Dim response As String
    response = httpRequest.responseText
    
    ' Puedes hacer algo con la respuesta, como imprimir en la hoja de Excel
    ThisWorkbook.Sheets("Hoja1").Range("A1").Value = response
End Sub

API Rest con autorización Consumer Key y Consumer Secret

VBA
Sub ConsumirAPIREST_Authentication()

    Dim httpRequest As New MSXML2.xmlhttp60
    
    Dim url As String
    url = "https://api.example.com/data" ' Cambia la URL por la URL real de la API
    
    Dim username As String
    username = "tu_usuario" ' Cambia esto por tu nombre de usuario
    
    Dim password As String
    password = "tu_clave_secreta" ' Cambia esto por tu clave secreta
    
    urlCompleta = url  & "?consumer_key=" & consumer_key & "&consumer_secret=" & Consumer_secret
    
    ' Realiza una solicitud POST a la API con autenticación
    httpRequest.Open "POST", urlCompleta , False
    httpRequest.setRequestHeader "Content-Type", "application/json"
    httpRequest.send
    
    ' Obtiene la respuesta de la API
    Dim response As String
    response = httpRequest.responseText
    
    ' Puedes hacer algo con la respuesta, como imprimir en la hoja de Excel
    ThisWorkbook.Sheets("Hoja1").Range("A1").Value = response
End Sub

Descargue la biblioteca VBA – JSON desde el Git del autor :

https://github.com/VBA-tools/VBA-JSON/releases/tag/v2.3.1

Recuerda que este es solo un ejemplo básico y que el código debe ajustarse según la estructura de la API que estás consumiendo y tus necesidades específicas.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!