# API Gateway

* [Definiciones](#definiciones)
* [Crear un API Gateway](#crear-un-api-gateway)
  * [Cómo editar un API Gateway](#como-editar-un-api-gateway)
    * [Nombre y Descripción](#nombre-y-descripcion)
    * [Imagen](#imagen)
    * [Copiar un API Gateway](#copiar-un-api-gateway)
    * [Eliminar un API Gateway](#eliminar-un-api-gateway)
* [Versión](#version)
  * [Creación de una Versión](#creacion-de-una-version)
  * [Editar una Versión](#editar-una-version)
  * [Eliminar una Versión](#eliminar-una-version)
* [Rutas](#rutas)
  * [Ruta HTTP](#ruta-http)
    * [Crear una ruta HTTP](#pasos-para-crear-una-ruta-http)
  * [Ruta Trigger](#ruta-trigger)
    * [Crear una ruta trigger](#pasos-para-crear-una-ruta-trigger)
  * [Editar Rutas](#editar-rutas)
  * [Límite de ejecuciones](#limite-de-ejecuciones)
  * [Eliminar Rutas](#eliminar-rutas)
* [Usuarios](#usuarios)
  * [Crear Usuarios](#crear-usuarios)
  * [Editar Usuarios](#editar-usuarios)
  * [Eliminar Usuarios](#eliminar-usuarios)

***

### Definiciones

Un API Gateway es una herramienta de gestión de APIs que permite crear o utilizar APIs de terceros en un solo lugar, siendo así una solución rápida y práctica de administración de APIs. Actúa como un proxy reverso para aceptar todas las llamadas a las APIs, agregar los diversos servicios necesarios para ejecutarlas y devolver el resultado apropiado.

Con esto en mente, para facilitar la creación de tus flujos en diferentes integraciones, la solución de API Gateway de Skyone Studio fue creada para ser tu centro de gestión de APIs, contando con autenticación Basic (con usuario y contraseña) para uno o más usuarios y enrutamiento (creación de rutas). Además, puedes no solo administrar APIs externas, sino también crear una API desde cero para usarla dentro de un flujo en Skyone Studio.

***

### Crear un API Gateway

Puedes crear uno o más API Gateways para controlar diferentes APIs, ya sean externas o creadas dentro de Skyone Studio. Para eso, sigue los siguientes pasos:

1. En la pestaña **API Gateway**, haz clic en **"Crear API Gateway"**:
2. En la ventana modal, ingresa el Nombre del API Gateway, Descripción (Opcional), elige un Grupo (por defecto es "default") e Imagen (Opcional).

<figure><img src="/files/CkW9IJnf0c8AHgszKdRL" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
La imagen debe tener un tamaño de 80x80 en formato png, jpg o jpeg. En caso de no elegir una imagen, el API Gateway será representado por una miniatura estándar de Skyone Studio, que se puede cambiar posteriormente.
{% endhint %}

3. Para finalizar, haz clic en **"Crear"**.

***

### Cómo editar un API Gateway

Para editar el API Gateway, solo haz clic en el elemento deseado. Luego serás dirigido a la pantalla de edición. Los pasos para la edición se dividen en cada ítem:

#### **Nombre y Descripción**:

1. Haz clic sobre "Nombre" o "Descripción" para que el área se vuelva editable.
2. Después de realizar los cambios, haz clic fuera del área de edición o presiona la tecla Enter para guardar.

<figure><img src="/files/HWzEDBqpkgwGudKBpAGz" alt=""><figcaption></figcaption></figure>

#### **Imagen**:

1. Para cambiar la imagen, pasa el cursor y haz clic en **"Editar"**.
2. Después de cambiarla, haz clic en **"Guardar"**.

<figure><img src="/files/pfv6QBrpU7Hk43VOqY9b" alt=""><figcaption></figcaption></figure>

***

### Copiar un API Gateway

Para copiar un API Gateway, basta con hacer clic en **"Copiar URL"**.

<figure><img src="/files/BYijwVoRVuYIYAchDtMw" alt=""><figcaption></figcaption></figure>

***

### Eliminar un API Gateway

1. Para eliminar un API Gateway, haz clic en **"Eliminar"**, ubicado en los tres puntos de la zona de edición del API Gateway.
2. Escribe el nombre para confirmar la eliminación y haz clic en **"Eliminar"** para finalizar.

<figure><img src="/files/6WMqRWm0R0G08NfOrO4n" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
No es posible deshacer la eliminación.
{% endhint %}

***

### Versión

Con esta funcionalidad es posible crear diferentes versiones para una misma API, que pueden contener distintas rutas y permisos de acceso.

#### **Creación de una Versión**:

1. En **API Gateway**, haz clic en el ítem deseado.
2. Haz clic en **"Nueva versión"**.

<figure><img src="/files/jdPTZChgxIo2f5xqEdGG" alt=""><figcaption></figcaption></figure>

3. Ingresa el Nombre de la versión y haz clic en **"Próximo Paso"**.

<figure><img src="/files/Q9hP0deg5ZOWZDeJVaTD" alt=""><figcaption></figcaption></figure>

4. Crea una nueva ruta (más información abajo) y haz clic en **"Guardar cambios"**.

#### **Editar una Versión**:

1. En **API Gateway**, haz clic en el ítem deseado.
2. En **"Versiones"**, selecciona la versión a modificar y haz clic en **"Editar"**.
3. Para finalizar, haz clic en **"Guardar cambios"**.

<figure><img src="/files/nflVX82IkkSdjFPejy6H" alt=""><figcaption></figcaption></figure>

#### **Eliminar una Versión**:

1. En **API Gateway**, haz clic en el ítem deseado.
2. En **"Versiones"**, selecciona la versión a eliminar y haz clic en **"Eliminar"**.
3. En la ventana modal, escribe el nombre para confirmar y haz clic en **"Eliminar"**.

<figure><img src="/files/fFKiRv7raGfaiBmkRBuc" alt=""><figcaption></figcaption></figure>

***

### Rutas

Una ruta es una dirección (URL) que lleva a un flujo, es decir, un endpoint de acceso a tu API en Skyone Studio.

Por ejemplo: puedes crear una ruta llamada **"/productos"** para usar en todos los flujos que trabajan con productos (guardar, listar, eliminar), utilizando una o más versiones. Con los diferentes métodos HTTP, el API Gateway de Skyone Studio facilita tanto el uso como la creación de APIs para distintas actividades en tus flujos.

El API Gateway permite crear dos tipos de rutas: **HTTP** y **Trigger**.

***

### Ruta HTTP

Al crear una ruta HTTP (que siempre utiliza una API externa), puedes mapear una URL diferente al endpoint original.\
Ejemplo: el endpoint externo es **"/orders/approve"**, y puedes crear una ruta interna como **"/pedidos/aprobar"**.

De esta manera, la API externa se usa con una URL personalizada y con control de acceso por usuario.

#### **Pasos para crear una ruta HTTP**:

1. Con la versión ya creada, haz clic en **"Próximos pasos"**.
2. Haz clic en **"Crear nueva ruta"**.

<figure><img src="/files/0jTdrtKVbpz0ulgdbwc1" alt=""><figcaption></figcaption></figure>

3. Completa los datos:

* URL de la ruta (puede ser distinta a la original).
* Métodos (GET, POST, PUT, PATCH, DELETE).
* Tipo de ruta: **HTTP**.
* Protocolo (HTTP o HTTPS), Host y Puerto.
* Path original (endpoint).
* Límite de ejecuciones (número y período).
* Opcional: marca **"Ruta protegida"** y selecciona el usuario con acceso.

Haz clic en **"Guardar ruta"**.

***

### Ruta Trigger

Una ruta Trigger no utiliza API externa. Sirve para realizar operaciones internas en tus flujos, con control opcional por usuario registrado.

#### **Pasos para crear una ruta Trigger**:

1. Con la versión ya creada, haz clic en **"Próximos pasos"**.
2. Haz clic en **"Crear nueva ruta"**.
3. Completa los datos:

* URL de la ruta.
* Métodos (GET, POST, PUT, PATCH, DELETE).
* Tipo de ruta: **Trigger**.
* Límite de ejecuciones.
* Opcional: **Ruta protegida** con usuario asignado.

4. Haz clic en **"Guardar ruta"**.

***

#### Editar Rutas

Dentro de una versión del API Gateway, selecciona la ruta deseada, haz clic en **"Editar"**, realiza los cambios y luego guarda.

<figure><img src="/files/Gv0mGZ2i4RMd9CYluSqB" alt=""><figcaption></figcaption></figure>

***

#### Límite de ejecuciones

Es posible gestionar la cantidad de ejecuciones de tu API Gateway a través del **Límite de Ejecuciones**, es decir, determinar el número máximo de veces que la API puede ser solicitada durante un período de tiempo.

Para ello, en la edición de una ruta, selecciona el número y la unidad de tiempo (segundo, minuto u hora) deseados.

Para finalizar, haz clic en **"Guardar Cambios"**.

{% hint style="info" %}
El límite de ejecuciones por defecto es de **10 ejecuciones por minuto**.
{% endhint %}

{% hint style="warning" %}
La unidad de tiempo se contabiliza por segundo, minuto u hora exactos.\
Por ejemplo: imagina que tienes una ruta con límite configurado en **2 por minuto**. Aunque la llamada comience a las **08:45:55**, el límite se mantiene hasta las **08:45:59**, ya que a las **08:46:00** comenzará un nuevo ciclo de ejecuciones.Permite definir la cantidad máxima de veces que la API será ejecutada en un período de tiempo.
{% endhint %}

***

#### Eliminar Rutas

Para eliminar, en cualquier momento, una ruta creada:

1. Dentro de la versión de tu API Gateway, selecciona el ítem que deseas eliminar y haz clic en **"Eliminar"**.
2. En la ventana modal, escribe el nombre para confirmar la eliminación y haz clic en **"Eliminar"** para finalizar la acción.

***

### Usuarios

Si deseas restringir el acceso a uno o más usuarios, puedes hacerlo utilizando un método de autenticación (**Basic** u **oAuth2**).

#### Crear Usuarios

Para crear un usuario en el API Gateway, sigue estos pasos:

1. En **API Gateway**, haz clic en la pestaña **"Usuarios"**.
2. Haz clic en **"Agregar usuario"**.
3. Personaliza el nombre de usuario.
4. Elige el tipo de autenticación: **Basic** u **oAuth2**, y sigue la configuración de acuerdo con el tipo seleccionado.

{% tabs %}
{% tab title="Basic" %}
Para finalizar la configuración del usuario con autenticación **Basic**, ingresa la Contraseña y luego haz clic en **"Guardar usuario"**.

<figure><img src="/files/esq8CfKCb7xrhaMhiaSz" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="oAuth2" %}
Para finalizar la configuración del usuario con autenticación **oAuth2**, haz clic en **"Guardar usuario"**.

<figure><img src="/files/V9pTpVgt3ZzNgxN7vwAl" alt=""><figcaption></figcaption></figure>

Después de crear el usuario, la pantalla mostrará los datos **Client ID** y **Client Secret**. Copia esta información e insértala en el endpoint para generar el **access\_token**.

<figure><img src="/files/EwTXZj3erEcd46wWSmdg" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

Los usuarios creados se listan en la pestaña **"Usuarios"** del API Gateway.

***

### Editar Usuarios

Para editar un usuario:

1. En **API Gateway**, en la pestaña **Usuarios**, haz clic en el ícono de **"Editar"** del usuario deseado.
2. Realiza las modificaciones necesarias (usuario o contraseña).
3. Haz clic en **"Guardar usuario"**.

<figure><img src="/files/UVZXvLcQye7xcD4X63Fy" alt=""><figcaption></figcaption></figure>

***

### Eliminar Usuarios

Para eliminar un usuario:

1. En **API Gateway**, en la pestaña **Usuarios**, haz clic en **"Eliminar"** del usuario deseado.
2. En la ventana modal, escribe el nombre para confirmar y haz clic en **"Eliminar"** para finalizar la acción.

{% hint style="warning" %}
Puedes eliminar cualquier usuario, siempre que no esté actualmente asociado a una ruta.\
En caso de que lo esté, primero debes editar las rutas que incluyen al usuario y quitarlo de la casilla de selección **"¿Esta ruta está protegida?"**.
{% endhint %}

***

Lea también: [**Parámetros de URL en el API Gateway**](/espanol/skyone-studio/how-to/parametros-de-url-en-el-api-gateway.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.skyone.cloud/espanol/skyone-studio/api-gateway.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
