# Como resolver conflito de rotas na implantação

É importante ter atenção às rotas especificadas nas *API Routes* em *Build* porque se for especificada uma rota que já existe, ocorrerão conflitos e a implantação das mesmas rotas não será possível. Confira a seguir os avisos de conflito de rotas e o que fazer em cada caso.

## Aviso de parâmetro de rota <a href="#h_6fa4f82287" id="h_6fa4f82287"></a>

Depois de ter configurado o *pipeline* para a implantação, a última etapa é clicar em **Implantar**. Mas se as ***Additional API Routes*** selecionadas na fase de ***Build*** começarem com um parâmetro, isso resultará em um erro porque não foi criada uma rota e não deve começar com um parâmetro.

Como você pode ver, ao usar ***/:product**,* o caminho original para acessar o *pipeline* será substituído.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/nq44f8hGiWdMNVkPX98N/01%20-%20Rotas.jpg" alt=""><figcaption></figcaption></figure>

Assim, em *Run*, caso não sejam estabelecidos os parâmetros para uma rota, aparecerá a mensagem abaixo informando isso e a implantação não poderá prosseguir.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/AkMiEtaVXx8fc063W48x/02%20-%20Mensagem.jpg" alt=""><figcaption></figcaption></figure>

A maneira correta é adicionar uma nova rota que receba um parâmetro - por exemplo, */product/:id* para resolver esse erro.&#x20;

## Aviso de rota existente <a href="#h_9e220df8bc" id="h_9e220df8bc"></a>

Outro aviso que aparece quando uma implantação está para ser feita, mas é encontrado um erro, é quando é usada uma rota que já existe em um *pipeline* diferente.

Como podemos ver no exemplo abaixo, o ***/conflict/route*** já foi usado em um *pipeline* chamado ***123-run-routes-2***.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/jH58BAOgTJDoRSxnvQmV/03%20-%20API%20Routes.jpg" alt=""><figcaption></figcaption></figure>

Mas se definirmos a mesma rota, ***/conflict/route***, em outro pipeline conforme mostrado abaixo, os diferentes pipelines terão URLs idênticos, portanto, apenas um deles será executado.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/IEBUlhT1OIrmTarJ66YH/04%20-%20Routes.jpg" alt=""><figcaption></figcaption></figure>

Em *Run*, um aviso antes da implantação informa que a rota já está sendo utilizada em outro *pipeline*. Então, você precisa alterar a rota na ***API Routes*** em ***Build*** e depois implantar em *Run*.

<figure><img src="https://content.gitbook.com/content/3ANg0NQQeslB7Og5K7Ah/blobs/vZnDFZBJ96w9ZO5NyjPS/05%20-%20final%20Routes.jpg" alt=""><figcaption></figcaption></figure>

Para evitar que isso aconteça, sugerimos a adoção de um padrão de nomenclatura, inclusive para os *requests*. Isso também traz algumas vantagens, ou seja, maior controle e segurança para esses tipos de *triggers* (REST, HTTP e HTTP File), rotas adicionais dão mais flexibilidade aos pipelines e o usuário evita retrabalho caso utilize legados com menos flexibilidade em termos de URL.
