> For the complete documentation index, see [llms.txt](https://docs.digibee.com/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/api/how-to-create-an-api-pipeline.md).

# Como criar um pipeline API

Este guia descreve como criar e configurar um pipeline API na Digibee Integration Platform. Se você ainda não conhece o conceito, leia a documentação **API** antes de começar.

## **Passo a passo**

Siga os passos abaixo para criar e configurar um pipeline API.

### **Passo 1: Criar o pipeline**

1. Na página **Pipelines**, clique em **Criar novo**.
2. Selecione a opção **API**.

Um sidesheet com as opções de configuração será aberto no lado direito da tela.

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

### **Passo 2: Configurar a aba Geral**

Você deve preencher e salvar todos os campos da aba **Geral** para habilitar as demais abas.

| Campo           | Descrição                                                                                                                                                                                                                                                                        |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Projeto**     | O projeto ao qual esta API pertence.                                                                                                                                                                                                                                             |
| **Nome da API** | Um nome para a API. Deve estar todo em letras minúsculas, usando apenas hífens como separadores.                                                                                                                                                                                 |
| **Descrição**   | Uma breve descrição do propósito da API.                                                                                                                                                                                                                                         |
| **Tipo de API** | O gateway em que esta API é publicada. **API externa** torna o endpoint acessível pela internet. **API interna** restringe o acesso a outros pipelines do seu realm ou por meio de uma VPN. Você pode habilitar uma ou as duas opções, mas pelo menos uma deve estar habilitada. |

Clique em **Salvar API** para continuar.

### **Passo 3: Configurar as demais abas**

#### **Endpoints**

**Endpoints**

Clique em **Importar OpenAPI Spec** para importar uma especificação existente, ou clique em **Adicionar endpoint** para adicionar rotas manualmente.

{% hint style="info" %}
Importar um OpenAPI Spec adiciona novas rotas à lista sem sobrescrever as existentes. Apenas rotas que correspondem a uma rota já configurada são atualizadas.
{% endhint %}

| Campo       | Descrição                                                            |
| ----------- | -------------------------------------------------------------------- |
| **Método**  | O método HTTP: `GET`, `POST`, `PUT`, `PATCH`, `OPTIONS` ou `DELETE`. |
| **Caminho** | O caminho do endpoint (por exemplo, `/users`).                       |
| **Resumo**  | Uma breve descrição da rota.                                         |

Após criar os endpoints e clicar em **Salvar API**, cada endpoint se torna um conector [**Block Execution**](/documentation/connectors-and-triggers/pt-br/connectors/logic/block-execution.md) no Canvas, configurado por meio dos subfluxos [**OnProcess**](/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/subpipelines.md#onprocess) e [**OnException**](/documentation/developer-guide/pt-br/development-cycle/build-overview/pipelines/subpipelines.md#onexception). Na coluna **Ações**, os seguintes botões são disponibilizados para cada endpoint:

| Ícone                                                                     | Ação                      | Descrição                                                                                                               |
| ------------------------------------------------------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| <i class="fa-repeat">:repeat:</i> **OnProcess**                           | Abrir subfluxo de sucesso | Abre o subfluxo OnProcess do endpoint no Canvas.                                                                        |
| <i class="fa-square-exclamation">:square-exclamation:</i> **OnException** | Abrir subfluxo de erro    | Abre o subfluxo OnException do endpoint no Canvas.                                                                      |
| <i class="fa-trash">:trash:</i> **Delete**                                | Remover endpoint          | Remove o endpoint desta interface. O Block Execution e seus subfluxos permanecem no Canvas, mas desconectados do fluxo. |

No Canvas, você pode navegar entre os endpoints configurados e alternar entre os subfluxos OnProcess e OnException usando o menu **Endpoints** na barra lateral esquerda.

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

Clique em **Configurar API** a qualquer momento para voltar à página de configuração.

**Cabeçalhos de resposta**

Clique em **Adicionar chave e valor** para adicionar cabeçalhos de resposta retornados pelo endpoint após o processamento.

| Campo     | Descrição             |
| --------- | --------------------- |
| **Chave** | O nome do cabeçalho.  |
| **Valor** | O valor do cabeçalho. |

#### **Auth**

Habilite os métodos de autenticação que se aplicam à sua API.

| Opção                         | Como funciona                                                                                                                                                                                                                                                                                                                                                                 |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Consumidor (Chave de API)** | Exige uma chave de API válida configurada na plataforma e associada a este pipeline. Gerencie as chaves de API na página [Consumers (Chaves de API)](/documentation/developer-guide/pt-br/platform-administration/settings/api-keys-consumers.md). Se este pipeline tiver Consumers associados, eles aparecem na seção **Consumidores permitidos** após habilitar esta opção. |
| **JWT Externo**               | Exige um token JWT gerado previamente por outro endpoint. Leia mais no artigo [Implementação do Digibee JWT](/documentation/connectors-and-triggers/pt-br/connectors/security/digibee-jwt/digibee-jwt-implementation.md).                                                                                                                                                     |
| **Autenticação básica**       | Exige credenciais Basic Auth presentes na requisição. Cadastre as credenciais antecipadamente na página [Consumers](/documentation/developer-guide/pt-br/platform-administration/settings/api-keys-consumers.md).                                                                                                                                                             |

#### **Avançado**

**Timeout e tamanho da requisição**

Esses parâmetros definem os limites de desempenho da sua API: quanto tempo o pipeline pode levar para responder e qual o tamanho máximo do payload de entrada.

| Parâmetro                           | Descrição                                                                                                                                                          | Padrão   |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |
| **Timeout**                         | Tempo máximo (em milissegundos) para o pipeline processar uma requisição antes de retornar uma resposta de timeout. Máximo: 900.000 ms.                            | 30000 ms |
| **Tamanho máx. da requisição (MB)** | Tamanho máximo permitido do payload em megabytes. Não pode ultrapassar 5 MB. Se excedido, a API retorna HTTP 413 com `{"message": "Request size limit exceeded"}`. | 5 MB     |

**Rate limit**

Aplica rate limiting no gateway da API para controlar quantas requisições podem ser feitas em um determinado intervalo de tempo. Disponível apenas quando **Chave de API** ou **Autenticação básica** está habilitada na aba **Auth**.

| Parâmetro       | Descrição                                                                                                                              | Padrão     |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| **Limitar por** | A entidade à qual os limites se aplicam.                                                                                               | `API`      |
| **Agregar por** | `Consumer` aplica os limites por grupo de credenciais. `Credential (API Key, Basic Auth)` aplica os limites por credencial individual. | `Consumer` |

**Janelas de rate limit**

Clique em **Adicionar janela** para definir uma ou mais janelas de limite de requisições baseadas em tempo.

| Campo         | Descrição                                                                                    |
| ------------- | -------------------------------------------------------------------------------------------- |
| **Ordem**     | A sequência em que as janelas de limite são avaliadas. Use os botões de seta para reordenar. |
| **Intervalo** | A unidade de tempo: `segundos`, `minutos`, `horas`, `dias` ou `meses`.                       |
| **Limite**    | O número máximo de requisições permitidas dentro da janela. Deve ser maior que zero.         |

{% hint style="info" %}
Se múltiplas janelas forem configuradas com o mesmo valor de intervalo, apenas uma é considerada. Janelas mal configuradas são ignoradas e um aviso é registrado na página [Pipeline Logs](/documentation/developer-guide/pt-br/development-cycle/dashboards/pipeline-logs.md).
{% endhint %}

**Adicionar Cross-Origin Resource Sharing (CORS)**

Cross-Origin Resource Sharing (CORS) é um mecanismo que controla quais origens têm permissão para fazer requisições ao seu endpoint. Habilite esta opção para definir cabeçalhos CORS específicos para este pipeline.

Clique em **Adicionar chave e valor** para adicionar cabeçalhos CORS.

| Campo     | Descrição              |
| --------- | ---------------------- |
| **Chave** | O nome do header CORS. |
| **Valor** | O valor permitido.     |

{% hint style="info" %}
Para configurar o CORS globalmente em todos os pipelines, em vez de individualmente, use a [política Cabeçalho HTTP CORS](/documentation/developer-guide/pt-br/platform-administration/governance/policies/transformation/cors-http-header.md).
{% endhint %}

**API com mTLS habilitado**

Habilite esta opção para publicar a API em um gateway dedicado com mutual TLS (mTLS) aplicado por padrão. Para usar esta funcionalidade no seu realm, entre em contato com o Suporte da Digibee para concluir a configuração.

{% hint style="info" %}
**API com mTLS habilitado** não oferece suporte a **Chave de API**, **Token JWT** ou **Autenticação básica**. Você pode habilitar **API externa** e **API Interna** junto com mTLS, mas recomenda-se deixá-las desabilitadas.
{% endhint %}

**Permitir reentrega de mensagens**

Habilite esta opção para permitir que mensagens sejam reenviadas caso o Pipeline Engine falhe. Quando habilitada, as mensagens retornadas à fila de processamento ficam disponíveis para reprocessamento por outras réplicas do pipeline ou pela mesma réplica após uma reinicialização. Leia mais no artigo [Pipeline Engine](/documentation/developer-guide/pt-br/development-cycle/overview/runtime/pipeline-engine.md).

#### **Documentação**

Inclua a documentação da sua API no formato OpenAPI 3.0. Este conteúdo descreve o contrato da sua API e pode ser usado para gerar SDKs de cliente, testar a API ou importar em ferramentas como Postman ou Swagger UI.

### **Próximos passos**

Com o pipeline API configurado, faça o deploy na [página Run](/documentation/developer-guide/pt-br/development-cycle/overview.md) para disponibilizá-lo para consumo. Após o deploy, o endpoint gerado ficará visível no card do pipeline.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.digibee.com/documentation/developer-guide/pt-br/development-cycle/build-overview/api/how-to-create-an-api-pipeline.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
