Aller au contenu principal

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.

AttributValeursValeur par défautObligatoireDescription
disableBuiltInProxyBooleanfalseDésactive le proxy global pour les routes (net.extra et net.intra)
proxyObjectConfiguration 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.
AttributValeursValeur par défautObligatoireDescription
protocolhttp, httpshttpsProtocole de l'API cible
proxyProtocolhttp, httpshttpsProtocole du proxy
addressString (myproxyhost.com)Adresse du serveur proxy
portNumber (8080)8080Port du serveur proxy
usernameString (johndoe)Identifiant à utiliser pour s'authentifier auprès du proxy
passString (password)Code secret à utiliser pour s'authentifier auprès du proxy
onlyprod, sandboxConditionne 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