Supporter le Proxy HTTP d'une API
Support des proxies HTTP pour les requêtes de consommation d'API.
Avec cette fonctionnalité, il est possible de consommer les endpoints d'une API via un proxy HTTP.
Les attributs de configuration du proxy sont contenu dans l'objet extra de l'API.
Attribut | Valeurs | Valeur par défaut | Obligatoire | Description |
---|---|---|---|---|
disableBuiltInProxy | Boolean | false | Désactive le proxy global pour les routes (net.extra et net.intra) | |
proxy | Object | Configuration du proxy |
Cas d'usages
Essentiellement lors des phases de développement, pour des APIs qui appliquent des règles de filtrage IP, lorsque l'on souhaite tester la consommation de l'API en local, avec une IP non autorisée ; l'utilisation d'un proxy permet d'arriver avec une autre IP (qui elle serait autorisée).
Principe de fonctionnement
- L'API gateway injecte les informations (ci-dessous) du proxy dans la requête qui est préparée pour consommer l'API, si une configuration de proxy existe dans le raccordement de l'API.
Attribut | Valeurs | Valeur par défaut | Obligatoire | Description |
---|---|---|---|---|
protocol | http, https | https | Protocole de l'API cible | |
proxyProtocol | http, https | https | Protocole du proxy | |
address | String (myproxyhost.com) | ✓ | Adresse du serveur proxy | |
port | Number (8080) | 8080 | Port du serveur proxy | |
username | String (johndoe) | Identifiant à utiliser pour s'authentifier auprès du proxy | ||
pass | String (password) | Code secret à utiliser pour s'authentifier auprès du proxy | ||
only | prod, sandbox | Conditionne l'utilisation du proxy selon la destination: "URL de production (endpoint)" ou "URL de test (sandbox endpoint)". Si l'attribut n'est pas spécifié, le proxy sera utilisé pour les 2 destinations. |
Exemple de configuration standard Oxeva
Dans la configuration de l'API, au niveau de l'attribut extra.proxy
:
urlContext: myapi
version: '1'
...
extra:
proxy:
protocol: https
proxyProtocol: http
address: endpoint-api-prod-p1.sap.sccc.part.intra.laposte.fr
port: 8080
Gestion du Proxy Global
L'API Gateway utilise par défaut un proxy http global en fonction de son environnement. Dans le cas de l'environnement ITAAS, toutes les requêtes sortantes passeront par celui-ci.
Cas d'erreur
Sur ITaaS, le proxy global est activé par défaut. Si vous accédez à votre API via le réseau interne, et que vous ne désactivez pas le proxy alors vous rencontrerez l'erreur suivante:
{
"code": "SERVICE_UNAVAILABLE",
"message": "The service is currently unavailable",
"errors": [
"RequestError: Socket is closed"
]
}
Désactivation du Proxy Global
Dans le cas où vous souhaitez désactiver le proxy global au niveau de l'API il faut mettre le champ internetAccess
à false
:
Si un proxy est défini au niveau de l'API, il prend le pas sur le proxy global
Exemple de configuration
urlContext: myapi
version: '1'
...
extra:
internetAccess: false # Désactivation du proxy global pour l'API