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
- Click en Integraciones -> Nueva integración.

-
Selecciona el tipo de integración (API)
-
Completar campos:
-
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
-
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:
-

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.
-
Tipo de autenticación (Campo opcional)
Existen cuatro tipos de autenticación:
- Sin autorización: Es el valor por defecto, no se hará visible el campo para ingresar el token.
- Bearer (Authorization: Bearer <token>): El ingreso del token será obligatorio.
- 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.
- Authorization (header: <token>): El ingreso del token será obligatorio.

-
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:

Puedes eliminar un encabezado haciendo click en el botón rojo situado a la derecha.
- 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)