Adicionando Parâmetros de Caminho e Curingas a Caminhos de Rota
Descubra como adicionar parâmetros de caminho e caracteres curinga para rotear caminhos nas especificações de implantação de API com o Gateway de API.
Talvez você queira que diferentes solicitações de API sejam roteadas para o mesmo back-end, mesmo quando os URLs da solicitação variarem para uma extensão maior ou menor da definição do caminho da rota na especificação de implantação de API.
Ao definir um caminho de rota em uma especificação de implantação de API, você pode incluir um parâmetro de caminho para substituir exatamente um segmento individual do caminho. Se necessário, você pode incluir vários parâmetros de caminho no caminho da rota. Você também pode anexar o curinga asterisco (*) a um parâmetro de caminho no caminho da rota para fornecer ainda mais flexibilidade ao identificar solicitações a serem enviadas ao mesmo back-end.
Os exemplos neste tópico pressupõem que você esteja adicionando caminhos de rota a uma especificação de implantação de API em um arquivo JSON. Observe que os exemplos também se aplicam quando você está definindo uma especificação de implantação de API usando caixas de diálogo na Console.
Exemplo: Adicionando Parâmetros de Caminho para Corresponder a URLs Semelhantes
Você pode ter um requisito para rotear solicitações com URLs semelhantes para o mesmo back-end. Por exemplo:
- https://<gateway-hostname>/marketing/hello/us/index.html
- https://<gateway-hostname>/marketing/hello/apac/index.html
- https://<gateway-hostname>/marketing/hello/emea/index.html
Para permitir que as chamadas a esses URLs semelhantes sejam resolvidas para o mesmo back-end, adicione um nome de parâmetro de caminho entre chaves como o segmento do caminho da rota que vai variar entre chamadas de API. Por exemplo, {region}
, como mostrado abaixo:
{
"routes": [
{
"path": "/hello/{region}/index.html",
"methods": ["GET"],
"backend": {
"type": "ORACLE_FUNCTIONS_BACKEND",
"functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
}
}
]
}
Observe que os nomes dos parâmetros de caminho:
- Podem incluir caracteres alfanuméricos maiúsculos e minúsculos.
- Podem incluir o caractere especial sublinhado
_
. - Não podem incluir outros caracteres especiais. Especificamente, observe que você não pode incluir espaços, barras e chaves em nomes de parâmetros de caminho.
Exemplo: Adicionando Parâmetros de Caminho com um Curinga para Corresponder a URLs Não Semelhantes
Você pode ter um requisito para rotear solicitações para o mesmo back-end, embora os URLs da solicitação sejam significativamente diferentes. Por exemplo:
- https://<gateway-hostname>/marketing/hello/us/index.html
- https://<gateway-hostname>/marketing/hello/apac/introduction/
- https://<gateway-hostname>/marketing/hello/emea/welcome.html
- https://<gateway-hostname>/marketing/hello/introduction
- https://<gateway-hostname>/marketing/hello/top.html
- https://<gateway-hostname>/marketing/hello/
Para permitir que chamadas a esses URLs significativamente diferentes sejam resolvidas para o mesmo back-end:
- adicione um nome de parâmetro de caminho entre chaves como o primeiro segmento do caminho de rota que será diferente entre as várias chamadas de API
- adicione o curinga asterisco (*) ao final do nome do parâmetro de caminho
Por exemplo, {generic_welcome*}
, como mostrado abaixo:
{
"routes": [
{
"path": "/hello/{generic_welcome*}",
"methods": ["GET"],
"backend": {
"type": "ORACLE_FUNCTIONS_BACKEND",
"functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
}
}
]
}
Observe que um nome de parâmetro de caminho com um curinga asterisco corresponderá:
- a nenhum segmento de caminho
- a um único segmento de caminho
- a vários segmentos de caminho