Ajout de paramètres de chemin et de caractères génériques aux chemins de routage
Découvrez comment ajouter des paramètres de chemin et des caractères génériques afin d'acheminer des chemins dans des spécifications de déploiement d'API avec API Gateway.
Vous pouvez acheminer différentes demandes d'API vers le même back-end, même lorsque les URL de demande diffèrent plus ou moins de la définition du chemin de routage dans la spécification de déploiement d'API.
Lors de la définition d'un chemin de routage dans une spécification de déploiement d'API, vous pouvez inclure un paramètre de chemin permettant de remplacer précisément un segment du chemin. Si nécessaire, vous pouvez inclure plusieurs paramètres de chemin dans le chemin de routage. Vous pouvez également ajouter l'astérisque (*) comme caractère générique à la fin d'un paramètre de chemin dans le chemin de routage afin de fournir davantage de flexibilité lors de l'identification des demandes à envoyer au même back-end.
Les exemples de cette rubrique supposent que vous ajoutez des chemins de routage à une spécification de déploiement d'API dans un fichier JSON. Ces exemples s'appliquent lorsque vous définissez une spécification de déploiement d'API à l'aide des boîtes de dialogue de la console.
Exemple : ajout de paramètres de chemin pour mettre en correspondance des URL similaires
Il peut être nécessaire d'acheminer les demandes comportant des URL similaires vers le même back-end. Par exemple :
- https://<gateway-hostname>/marketing/hello/us/index.html
- https://<gateway-hostname>/marketing/hello/apac/index.html
- https://<gateway-hostname>/marketing/hello/emea/index.html
Pour que les appels vers ces URL similaires puissent être résolus vers le même back-end, ajoutez un nom de paramètre de chemin entre accolades en tant que segment du chemin de routage qui varie entre les appels d'API. Par exemple, {region}
comme indiqué ci-dessous :
{
"routes": [
{
"path": "/hello/{region}/index.html",
"methods": ["GET"],
"backend": {
"type": "ORACLE_FUNCTIONS_BACKEND",
"functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
}
}
]
}
Les noms de paramètre de chemin :
- peuvent inclure des caractères alphanumériques en majuscules et en minuscules,
- peuvent contenir le trait de soulignement
_
, un caractère spécial. - ne peuvent pas contenir d'autres caractères spéciaux. En particulier, vous ne pouvez pas inclure d'espaces, de barres obliques et d'accolades dans les noms de paramètre de chemin.
Exemple : ajout de paramètres de chemin avec un caractère générique pour mettre en correspondance des URL différentes
Il peut être nécessaire d'acheminer des demandes vers le même back-end, même si leurs URL de demande sont très différentes. Par exemple :
- 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/
Pour permettre aux appels vers ces URL très différentes d'être résolus vers le même back-end, procédez comme suit :
- Ajoutez un nom de paramètre de chemin entre accolades en tant que premier segment du chemin de routage qui varie entre les différents appels d'API.
- Ajoutez l'astérisque (*) comme caractère générique à la fin du nom de paramètre de chemin.
Par exemple, {generic_welcome*}
comme indiqué ci-dessous :
{
"routes": [
{
"path": "/hello/{generic_welcome*}",
"methods": ["GET"],
"backend": {
"type": "ORACLE_FUNCTIONS_BACKEND",
"functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
}
}
]
}
Un nom de paramètre de chemin avec un astérisque (caractère générique) :
- n'est mis en correspondance avec aucun segment de chemin,
- est mis en correspondance avec un seul segment de chemin,
- est mis en correspondance avec plusieurs segments de chemin.