# API Gateway

* [Definições](#definicoes)
* [Criar um API Gateway](#criar-um-api-gateway)
  * [Como editar um API Gateway](#como-editar-um-api-gateway)
    * [Nome e Descrição](#nome-e-descricao)
    * [Imagem](#imagem)
    * [Copiar um API Gateway](#copiar-um-api-gateway)
    * [Excluir um API Gateway](#excluir-um-api-gateway)
* [Versão](#versao)
  * [Criação de uma Versão](#criacao-de-uma-versao)
  * [Editar uma Versão](#editar-uma-versao)
  * [Excluir uma Versão](#excluir-uma-versao)
* [Rotas](#rotas)
  * [Rota HTTP](#rota-http)
    * [Criar uma rota HTTP](#criar-uma-rota-http)
  * [Rota Trigger](#rota-trigger)
    * [Criar uma rota trigger](#criar-uma-rota-trigger)
  * [Editar Rotas](#editar-rotas)
  * [Limite de execuções](#limite-de-execucoes)
  * [Excluir Rotas](#editar-rotas)
* [Usuários](#usuarios)
  * [Criar Usuários](#criar-usuarios)
  * [Editar Usuários](#editar-usuarios)
  * [Excluir Usuários](#excluir-usuarios)

### Definições

Um **API Gateway** é uma ferramenta de gerenciamento de APIs, que permite criar ou utilizar APIs de terceiros num só lugar, sendo assim uma solução rápida e prática de gerenciamento de APIs. Ela atua como um proxy reverso para aceitar todas as chamadas das APIs, agregar os vários serviços necessários para executá-las, e retornar o resultado apropriado.

Com isto em mente, para facilitar a criação de seus fluxos em diferentes integrações, a solução de API Gateway do **Skyone Studio** foi criado para ser a sua central de gerenciamento de APIs, possuindo autenticação Basic (com usuário e senha) para um ou mais usuários e roteamento (criação de rotas). Além disso, você pode não só gerenciar APIs externas, como criar uma API do zero, para que você possa usá-la dentro de um fluxo no **Skyone Studio**.

### **Criar um API Gateway** <a href="#criar-um-api-gateway" id="criar-um-api-gateway"></a>

Você pode criar um ou mais API Gateways para controlar diferentes APIs, sejam elas externas ou criadas dentro do **Skyone Studio**. Para isso, siga os seguintes passos:

1. Na aba API Gateway, clique em "**Criar API Gateway":**
2. No modal, insira o **Nome do API Gateway**, **Descrição** (Opcional), escolha um **Grupo** (por padrão, é o "default") e **Imagem** (Opcional)**.**

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

{% hint style="info" %}
A imagem deve ser do tamanho 80x80 no formato png, jpg ou jpeg. Caso não seja escolhida uma imagem, o API Gateway será representado por uma miniatura padrão do **Skyone Studio**, podendo ser alterada posteriormente.
{% endhint %}

3. Para finalizar, clique em "**Criar"**.

### **Como editar um API Gateway** <a href="#como-editar-um-api-gateway" id="como-editar-um-api-gateway"></a>

Para editar o API Gateway, basta clicar em cima do item desejado. Em seguida você será direcionado para a tela de edição. Separamos os passos para edição conforme cada item:

#### **Nome e Descrição:**

1. Para editar o "**Nome"** e a "**Descrição"**, basta um clique para que a área torne-se editável.
2. Após as alterações, clique fora da área de edição ou pressione a tecla Enter para salvar as alterações.

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

#### **Imagem**

1. Para alterar a imagem, aproxime o mouse e clique em "**Editar"**.
2. Após a alteração, clique em "**Salvar"**.

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

#### Copiar um API Gateway <a href="#copiar-um-api-gateway" id="copiar-um-api-gateway"></a>

Para copiar um API Gateway, basta clicar em "**Copiar URL"**.

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

#### **Excluir um API Gateway** <a href="#excluir-um-api-gateway" id="excluir-um-api-gateway"></a>

1. Para excluir um API Gateway, basta clicar em "**Excluir"**, localizado nos três pontinhos da área de edição do API Gateway.
2. Digite o nome para confirmar a exclusão e clique em "**Excluir"** para finalizar a ação.

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

{% hint style="info" %}
Não é possível desfazer a exclusão.
{% endhint %}

### **Versão**

Com esta funcionalidade, é possível criar diferentes versões para uma mesma API, que podem conter diferentes rotas e permissões de acesso.

#### **Criação de uma Versão** <a href="#criacao-de-uma-versao" id="criacao-de-uma-versao"></a>

Para criar uma versão:

1. Em "**API Gateway"**, clique no item desejado.
2. Clique em "**Nova versão"**.

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

3. Informe o **Nome da versão do API Gateway** e clique em "**Próximo Passo".**

<figure><img src="/files/2Kq6QpmdqbeViyxcgbEH" alt=""><figcaption></figcaption></figure>

5. Crie uma nova rota (mais informações abaixo) e clicar em "**Salvar alterações".**

#### **Editar uma Versão** <a href="#editar-uma-versao" id="editar-uma-versao"></a>

Para editar uma versão:

1. Em **API Gateway**, clique no item desejado.
2. Em "**Versões"**, escolha a versão que deseja modificar e clique em "**Editar"**.
3. Para finalizar, clique em "**Salvar alterações".**

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

#### **Excluir uma Versão**

Para excluir uma versão:

1. Em "**API Gateway"**, clique no item desejado.
2. Em "**Versões"**, escolha a versão que deseja apagar e clique em "**Excluir"**.
3. No modal, digite o nome para confirmar a exclusão e clique em "**Excluir"** para finalizar a ação.

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

### **Rotas** <a href="#rotas" id="rotas"></a>

Agora que você já criou ao menos uma versão, poderá criar uma ou mais rotas para a sua API.

Uma rota é um endereço (URL) que leva a um fluxo, ou seja, é um endpoint de acesso a sua API no **Skyone Studio**. Com ela, você pode criar, por exemplo, uma rota de nome “/produtos “ para ser usada em todos os fluxos que mexem com produtos (salvar, listar, excluir produtos), utilizando-se de uma ou mais versões. Usando as rotas com os diferentes métodos HTTP, o API Gateway do **Skyone Studio** facilita o uso de APIs ou a criação de APIs para a realização de certos tipos de atividades em diferentes fluxos.

Para uma maior flexibilidade, o nosso API Gateway permite a criação de dois tipos de rotas: Trigger e HTTP, que veremos em detalhes a seguir.

### **Rota HTTP** <a href="#rota-http" id="rota-http"></a>

Quando você cria uma rota HTTP, que sempre utiliza uma API externa, você pode apontar para uma rota em um dado idioma, mesmo que o endpoint esteja em um idioma diferente, facilitando o uso de APIs externas por qualquer usuário do **Skyone Studio.**  Logo se, por exemplo, você quiser fazer uma requisição ao endpoint “/orders/approve” de uma API, poderá criar uma rota denominada “/pedidos/aprovar”.

Ou seja, em vez de utilizar a API externa, sem customização, você a utiliza com uma URL única e com dados personalizados: rota, versão e acesso por usuário (autenticação Basic).

#### **Criar uma rota HTTP:**

1. Com a versão já criada, ao clicar em "**Próximos passos"**, você será direcionado para criar a rota.
2. Clique em "**Criar nova rota"**.

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

3. Informe os dados da rota, sendo que:

* Informe a **URL da Rota** que você deseja utilizar na rota, que pode ser diferente do original.
* Escolha um ou mais **Métodos de rota do API Gateway** (GET, POST, PUT, PATCH OU DELETE);
* Em **Tipo da Rota**, escolha **HTTP**;
* Informe o **Protocolo** (HTTP ou HTTPS), o **Host** (endereço da API) e a **Porta** utilizada;
* Informe o **Path** (caminho) original da API (endpoint)
* Escolha o **Limite de execuções** (número de execuções e o período);
* Opcionalmente, caso já tenha criado um usuário, clique na opção "**Rota protegida"** e escolha o usuário que precisa ter acesso a esta rota;

4\. Para finalizar a ação, clique em "**Salvar rota".**

1. Com a versão já criada, ao clicar em "**Próximos passos"**, você será direcionado para criar a rota.
2. Clique em "**Criar nova rota"**.

#### **Rota Trigger**

Quando você cria uma rota Trigger, que não utiliza uma API externa, você pode realizar diferentes operações, sem ter que repetir a configuração em cada fluxo, além de controlar o acesso conforme o usuário cadastrado no API Gateway, caso deseje que o acesso seja restrito.

Ou seja, em vez de repetir os dados em diferentes fluxos, você a utiliza com uma URL única e com dados personalizados: rota, versão e acesso por usuário (autenticação Basic).

#### **Criar uma rota trigger:**

1. Com a versão já criada, ao clicar em "**Próximos passos",** você será direcionado para criar a rota.
2. Clique em "**Criar nova rota"**.
3. Informe os dados da rota, sendo que:

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

* Informe a **URL da Rota** que você deseja utilizar na rota, que pode ser diferente do original;
* Escolha um ou mais **Métodos de rota do API Gateway** (GET, POST, PUT, PATCH OU DELETE);
* Em **Tipo da Rota**, escolha **Trigger**;
* Escolha o **Limite de execuções** (número de execuções e o período);
* Opcionalmente, caso já tenha criado um usuário, clique na opção **Rota protegida** e escolha o usuário que precisa ter acesso a esta rota;

4. Para finalizar a ação, clique em "**Salvar rota".**

#### **Editar Rotas** <a href="#editar-rotas" id="editar-rotas"></a>

Para editar, a qualquer momento, uma rota criada:

1. Dentro da versão do seu API Gateway, escolha o item que deseja alterar e clique em "**Editar"**:
2. Depois de fazer as alterações, clique em "**Salvar alterações"**.

   <br>

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

#### Limite de execuções <a href="#limite-de-execucoes" id="limite-de-execucoes"></a>

É possível gerenciar a quantidade de execuções da sua API Gateway através do **Limite de Execuções**, ou seja, determinar o máximo de vezes em que o API será requisitado durante um período de tempo.

Para isso, na edição de uma rota, escolha o número e a medida de tempo (segundo, minuto ou hora) desejados.

Para finalizar, clique em "**Salvar Alterações"**.

{% hint style="info" %}
O limite de execuções padrão é de 10 execuções por minuto.
{% endhint %}

{% hint style="warning" %}
A medida de tempo é contabilizada por segundo, minuto e hora padrão cheia. Por exemplo: Imagine que você tem uma rota e o limite de execuções está configurado para 2 por minuto. Mesmo que a chamada comece às 08:45:55, o limite é até 08:45:59, pois às 08:46:00 será contabilizada como uma nova série de execuções.
{% endhint %}

#### **Excluir Rotas** <a href="#excluir-rotas" id="excluir-rotas"></a>

Para editar, a qualquer momento, uma rota criada:

1. Dentro da versão do seu API Gateway, escolha o item que deseja alterar e clique em "**Excluir"**:
2. No modal, digite o nome para confirmar a exclusão e clique em "**Excluir"** para finalizar a ação.

### **Usuários**

Caso queira restringir o acesso a um ou mais usuários, você poderá fazer isso, utilizando-se de uma autenticação (Básico ou oAuth2).

#### **Criar Usuários** <a href="#criar-usuarios" id="criar-usuarios"></a>

1. Para criar um usuário, em API Gateway, clique na aba "**Usuários"**:
2. Clique em "**Adicionar usuário"**;
3. Personalize o restante do nome de **Usuário;**
4. Escolha o tipo de autenticação: **Básico** ou **oAuth2** e siga a configuração de acordo com o tipo:

{% tabs %}
{% tab title="Basico" %}
Para finalizar a configuração do usuário do tipo **Basic**, informe a **Senha**, e depois clique em "**Salvar usuário**".

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

{% tab title="oAuth2" %}
Para finalizar a configuração do usuário do tipo **oAuth2**, clique em "**Salvar usuário"**.&#x20;

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

Após criar o usuário, a tela exibirá os dados **Client ID** e **Client Secret**. Copie essas informações e insira-as no endpoint para gerar o access\_token.

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

Os usuários criados são listados na guia "**Usuários**" do API Gateway.<br>

#### **Editar Usuários**

Para editar um usuário:

1. Em API Gateway, na aba **Usuários**, clique no ícone de  "**Editar"** do usuário desejado.
2. Faça as alterações necessárias (usuário ou senha) e clique em "**Salvar usuário"**.

   <br>

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

#### **Excluir Usuários** <a href="#excluir-usuarios" id="excluir-usuarios"></a>

Para excluir um usuário:

1. Em API Gateway, na aba **Usuários**, clique em "**Excluir"** do usuário desejado.
2. No modal, digite o nome para confirmar a exclusão e clique em "**Excluir"** para finalizar a ação.

{% hint style="warning" %}
Você pode excluir qualquer usuário, desde que ele **não esteja atualmente associado a uma rota**. Se este for o caso, você precisa editar as rotas que incluem o usuário e removê-lo da caixa de combinação "Esta rota é protegida?".
{% endhint %}

Leia também:

* [Parâmetros de URL no API Gateway](/skyone-studio/how-to/parametros-de-url-no-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/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.
