Saltar al contenido principal

Integraciones API

En este instructivo se detallan los pasos a seguir para configurar y utilizar una integración a una API.

Paso 1 – Configurar la integración

  1. Click en Integraciones -> Nueva integración.

imagen 1

  1. Selecciona el tipo de integración (API)

  2. Completar campos:

    1. Nombre (Campo obligatorio)

      Es el identificador único de la integración, con el cual será invocada desde el guión. Nota: No se deben colocar espacios en el nombre. Ejemplo: github

    2. URL (Campo obligatorio)

      Ingresar la URL a la cuál va a acceder la integración. Si la URL contiene parámetros, deben ingresarse de la siguiente manera:

imagen 2

El parámetro debe ir entre esta sintaxis: %{}. Al hacer clic fuera del área de texto, los parámetros se harán visibles automáticamente para que puedas asignarles un valor.

  1. Tipo de autenticación (Campo opcional)

    Existen cuatro tipos de autenticación:

    1. Sin autorización: Es el valor por defecto, no se hará visible el campo para ingresar el token.
    2. Bearer (Authorization: Bearer <token>): El ingreso del token será obligatorio.
    3. Basic (Base64 de client:secret): Se deben ingresar la clave completa concatenada sin codear en base64, Gredit se encargará de realizar este proceso. El ingreso del token será obligatorio.
    4. Authorization (header: <token>): El ingreso del token será obligatorio.

imagen 3

  1. Encabezados

    Permite agregar los encabezados necesarios para realizar la petición.

    Al hacer click en el botón Agregar encabezado se harán visibles dos campos, uno para el nombre y otro para su valor:

imagen 4

Puedes eliminar un encabezado haciendo click en el botón rojo situado a la derecha.

  1. Click en Crear integración

Paso 2 – Utilización de una integración en un guión

En esta sección se explica cómo utilizar una integración previamente creada. Actualmente, la API admite los siguientes métodos HTTP para realizar solicitudes (requests) a los distintos endpoints: GET, POST, PATCH y DELETE. Desde un script en Ruby o Python puedes acceder a cualquier integración que hayas configurado anteriormente.

En ambos lenguajes, la invocación de una integración se realiza utilizando la siguiente sintaxis:

@@integration['nombre_de_la_integracion']

Importante: El nombre debe ser exactamente igual al colocado en el campo Nombre cuando se creó la integración.

Ruby

  • Petición sin definir un endpoint o ruta (petición a url base):
res = @@integration['httpbin']
result = res.get
puts result.body
  • Petición definiendo un endpoint o ruta:
res = @@integration['httpbin']
result = res.get('/users')
puts result.body
  • Petición enviando parámetros definiendo un endpoint o ruta:

Los parámetros se pueden colocar al momento de definir la integración. Los mismos deben colocarse en un hash dentro de corchetes. En el ejemplo se envía: {status: 2, page: 3}

res = @@integration['httpbin'][{status: 2, page: 3}]
result = res.get('/users')
puts result.body

O pueden indicarse al momento de realizar la petición. El hash con los parámetros debe colocarse como segundo parámetro de la función get:

res = @@integration['httpbin']
result = res.post('/post', {status: 2, page: 3})
puts result.body
  • Petición enviando parámetros sin definir un endpoint o ruta:
res = @@integration['httpbin']
result = res.get(nil, {page: 1}).body
puts result

Python

  • Petición sin definir un endpoint o ruta (petición a url base):
res = @@integration['httpbin']
response = res.get()
print(response.text)
  • Petición definiendo un endpoint o ruta:
res = @@integration['httpbin']
response = res.get('/anything')
print(response.text)
  • Petición enviando parámetros definiendo un endpoint o ruta:

Los parámetros se pueden colocar al momento de definir la integración. Los mismos deben colocarse en un hash dentro de corchetes. En el ejemplo se envía: {'status': 2, 'page': 3}

res = @@integration['httpbin'][{'status': 2, 'page': 3}]
response = res.get('/anything')
print(response.text)

O pueden indicarse al momento de realizar la petición. El hash con los parámetros debe colocarse como segundo parámetro de la función get:

res = @@integration['httpbin']
response = res.post('/post', {'status': 2, 'page': 3})
print(response.text)
  • Petición enviando parámetros sin definir un endpoint o ruta:
res = @@integration['httpbin']
response = res.post(None, {'status': 2, 'page': 3})
print(response.text)