Ajout d'une URL HTTP ou HTTPS en tant que back-end de passerelle d'API

Découvrez comment créer un déploiement d'API pour accéder aux URL HTTP et HTTPS avec API Gateway.

Pour créer une API, vous avez souvent besoin de l'URL HTTP ou HTTPS d'un service back-end avec une passerelle d'API fournissant un accès frontal à cette URL.

Une fois que vous avez utilisé le service API Gateway pour créer une passerelle d'API, vous pouvez créer un déploiement d'API permettant d'accéder aux URL HTTP et HTTPS.

Vous pouvez indiquer les types d'URL HTTP ou HTTPS suivants pour le service back-end :

  • URL d'un service public sur Internet.
  • URL d'un service Oracle Cloud Infrastructure (par exemple, OCI Functions).
  • URL d'un service sur votre propre réseau privé ou interne (par exemple, en cas de connexion au réseau cloud virtuel via FastConnect).

L'URL fournie dans la spécification de déploiement d'API pour identifier le service back-end HTTP ou HTTPS peut inclure le nom d'hôte ou l'adresse IP de l'hôte. Si vous indiquez le nom d'hôte, utilisez la propriété Options DHCP du sous-réseau de la passerelle d'API pour contrôler la façon dont les noms d'hôte inclus dans la spécification de déploiement d'API sont résolus en adresses IP lors de l'exécution :

  • Si le nom d'hôte d'un service back-end est publié publiquement sur Internet ou s'il appartient à une instance située dans le même réseau cloud virtuel, sélectionnez un ensemble d'options DHCP pour le sous-réseau de la passerelle d'API sur lequel le type DNS est défini sur le résolveur Internet et de réseau cloud virtuel fourni par Oracle. Il s'agit de la valeur par défaut si vous ne sélectionnez pas explicitement un ensemble d'options DHCP.
  • Si le nom d'hôte se trouve sur votre propre réseau privé ou interne, sélectionnez un ensemble d'options DHCP pour le sous-réseau de la passerelle d'API sur lequel le type DNS est défini sur un résolveur personnalisé et qui comporte l'URL d'un serveur DNS approprié pouvant résoudre le nom d'hôte en adresse IP.

Vous pouvez modifier les détails du serveur DNS dans l'ensemble d'options DHCP spécifié pour le sous-réseau d'une passerelle d'API. La passerelle d'API sera reconfigurée pour utiliser les détails mis à jour du serveur DNS dans un délai de deux heures. Pour plus d'informations sur la résolution des noms d'hôte en adresses IP, reportez-vous à DNS dans votre réseau cloud virtuel et à Options DHCP.

Vous pouvez ajouter des back-ends HTTP et HTTPS à une spécification de déploiement d'API des façons suivantes :

  • utilisant la console,
  • modifiant un fichier JSON.

Utilisation de la console pour ajouter des back-ends HTTP ou HTTPS à une spécification de déploiement d'API

Pour ajouter un back-end HTTP ou HTTPS à une spécification de déploiement d'API à l'aide de la console, procédez comme suit :

  1. Créez ou mettez à jour un déploiement d'API à l'aide de la console, sélectionnez l'option Entièrement nouveau, puis saisissez les détails sur la page Informations de base.

    Pour plus d'informations, reportez-vous à Déploiement d'une API sur une passerelle d'API en créant un déploiement d'API et à Mise à jour d'une passerelle d'API.

  2. Sur la page Authentification, indiquez les options d'authentification.

    Pour plus d'informations sur les options d'authentification, reportez-vous à Ajout de l'authentification et de l'autorisation aux déploiements d'API.

  3. Sur la page Routages, créez un routage et spécifiez les éléments suivants :

    • Chemin : chemin pour les appels d'API utilisant les méthodes répertoriées vers le service back-end. Le chemin d'accès que vous spécifiez doit remplir les conditions suivantes :

    • Méthodes : méthodes acceptées par le service back-end. Par exemple, GET, PUT.
    • Ajouter un seul back-end : ou Ajouter plusieurs back-ends : indique si toutes les demandes doivent être acheminées vers le même back-end ou si elles doivent l'être vers d'autres back-ends en fonction de la variable de contexte et des règles que vous entrez.

      Ces instructions supposent que vous souhaitez utiliser un back-end unique. Sélectionnez donc Ajouter un back-end unique. Si vous souhaitez utiliser des back-ends différents, vous pouvez également sélectionner Ajouter plusieurs back-ends et suivre les instructions fournies dans Utilisation de la console pour ajouter une sélection de back-end dynamique à une spécification de déploiement d'API.

    • Type de back-end : type du service back-end (HTTP).
    • URL : URL à utiliser en tant que service back-end, au format <protocol>://<host>:<port>/<path>, où :

      • <protocol> correspond à http ou à https.
      • <host> correspond au nom d'hôte ou à l'adresse IP de l'hôte du service back-end. Par exemple, api.weather.gov. Si vous indiquez un nom d'hôte, utilisez la propriété Options DHCP du sous-réseau de la passerelle d'API pour contrôler la résolution des noms d'hôte en adresses IP lors de l'exécution.
      • <port> est un numéro de port facultatif.
      • <path> (facultatif) est un sous-répertoire ou un fichier sur l'hôte dans lequel le service back-end est situé.

        <path> ne doit pas contenir directement de paramètres, mais peut contenir des variables de contexte. Pour plus d'informations et d'exemples sur l'utilisation des variables de contexte pour remplacer des paramètres de chemin, de requête et d'en-tête dans le chemin, reportez-vous à Ajout de variables de contexte aux stratégies et aux définitions de back-end HTTP.

      Par exemple, "url": "https://api.weather.gov".

    • Délai d'expiration pour l'établissement de connexion en secondes : (facultatif) valeur à virgule flottante indiquant la durée (en secondes) autorisée lors de l'établissement d'une connexion avec le service back-end. La valeur minimale est 1,0 et la valeur maximale est 75,0. Si rien n'est indiqué, la valeur par défaut (60,0 secondes) est utilisée.
    • Délai d'expiration de la transmission des demandes en secondes : (facultatif) valeur à virgule flottante indiquant la durée (en secondes) autorisée lors de la transmission d'une demande au service back-end. La valeur minimale est 1,0 et la valeur maximale est 300,0. Si rien n'est indiqué, la valeur par défaut (10,0 secondes) est utilisée.
    • Délai d'expiration de la lecture de la réponse en secondes : (facultatif) valeur à virgule flottante indiquant la durée (en secondes) autorisée lors de la lecture d'une réponse à partir du service back-end. La valeur minimale est 1,0 et la valeur maximale est 300,0. Si rien n'est indiqué, la valeur par défaut (10,0 secondes) est utilisée.
    • Désactiver la vérification SSL : permet de désactiver la vérification SSL lors de la communication avec le service back-end. Par défaut, cette option n'est pas sélectionnée.

    Dans cet exemple, le routage définit un service météorologique en tant que back-end HTTP.

    Champ : Saisissez ce qui suit :
    Chemin : /weather
    Méthodes : GET
    Type de back-end: HTTP
    URL : https://api.weather.gov
    Délai d'expiration pour l'établissement de la connexion en secondes : 45
    Délai d'expiration de la transmission des demandes en secondes : 15
    Délai d'expiration de la lecture de la réponse en secondes : 15
    Désactiver la vérification SSL : (Non sélectionné)
  4. (Facultatif) Sélectionnez Autre routage pour saisir les détails d'autres routages.
  5. Sélectionnez Suivant afin de vérifier les détails saisis pour le déploiement d'API.
  6. Sélectionnez Créer ou Enregistrer les modifications pour créer ou mettre à jour le déploiement d'API.
  7. (Facultatif) Vérifiez que l'API a été déployée en l'appelant (reportez-vous à Appel d'une API déployée sur une passerelle d'API).

Modification d'un fichier JSON pour ajouter des back-ends HTTP ou HTTPS à une spécification de déploiement d'API

Pour ajouter un back-end HTTP ou HTTPS à une spécification de déploiement d'API dans un fichier JSON, procédez comme suit :

  1. A l'aide de l'éditeur JSON de votre choix, créez une spécification de déploiement d'API (reportez-vous à Création d'une spécification de déploiement d'API) au format suivant :

    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "HTTP_BACKEND",
            "url": "<identifier>",
            "connectTimeoutInSeconds": <seconds>,
            "readTimeoutInSeconds": <seconds>,						
            "sendTimeoutInSeconds": <seconds>,
            "isSSLVerifyDisabled": <true|false>
          },
          "requestPolicies": {},
        }
      ]
    }

    où :

    • "requestPolicies" indique des stratégies facultatives permettant de contrôler le comportement d'un déploiement d'API. Pour appliquer des stratégies à tous les routages dans une spécification de déploiement d'API, placez les stratégies en dehors de la section routes. Pour appliquer les stratégies uniquement à un routage spécifique, placez les stratégies dans la section routes. Reportez-vous à Ajout de stratégies de demande et de réponse aux spécifications de déploiement d'API.
    • <api-route-path> spécifie un chemin pour les appels d'API utilisant les méthodes répertoriées vers le service back-end. Le chemin d'accès que vous spécifiez doit remplir les conditions suivantes :

    • <method-list> indique les méthodes acceptées par le service back-end, séparées par des virgules. Par exemple, "GET, PUT".
    • "type": "HTTP_BACKEND" indique que le back-end de la passerelle d'API est une URL HTTP ou HTTPS.
    • "url: "<identifier>" spécifie l'URL à utiliser comme service back-end, au format <protocol>://<host>:<port>/<path>, où :

      • <protocol> correspond à http ou à https.
      • <host> correspond au nom d'hôte ou à l'adresse IP de l'hôte du service back-end. Par exemple, api.weather.gov. Si vous indiquez un nom d'hôte, utilisez la propriété Options DHCP du sous-réseau de la passerelle d'API pour contrôler la résolution des noms d'hôte en adresses IP lors de l'exécution.
      • <port> est un numéro de port facultatif.
      • <path> (facultatif) est un sous-répertoire ou un fichier sur l'hôte dans lequel le service back-end est situé.

        <path> ne doit pas contenir directement de paramètres, mais peut contenir des variables de contexte. Pour plus d'informations et d'exemples sur l'utilisation des variables de contexte pour remplacer des paramètres de chemin, de requête et d'en-tête dans le chemin, reportez-vous à Ajout de variables de contexte aux stratégies et aux définitions de back-end HTTP.

      Par exemple, "url": "https://api.weather.gov".

    • "connectTimeoutInSeconds": <seconds> est une valeur à virgule flottante facultative indiquant la durée (en secondes) autorisée lors de l'établissement d'une connexion avec le service back-end. La valeur minimale est 0,0 et la valeur maximale est 75,0. Si rien n'est indiqué, la valeur par défaut (60,0 secondes) est utilisée.
    • "readTimeoutInSeconds": <seconds> est une valeur à virgule flottante facultative indiquant la durée (en secondes) autorisée lors de la lecture d'une réponse à partir du service back-end. La valeur minimale est 0,0 et la valeur maximale est 300,0. Si rien n'est indiqué, la valeur par défaut (10,0 secondes) est utilisée.
    • "sendTimeoutInSeconds": <seconds> est une valeur à virgule flottante facultative indiquant la durée (en secondes) autorisée lors de la transmission d'une demande au service back-end. La valeur minimale est 0,0 et la valeur maximale est 300,0. Si rien n'est indiqué, la valeur par défaut (10,0 secondes) est utilisée.
    • "isSSLVerifyDisabled": <true|false> est une valeur booléenne facultative (true ou false) indiquant si la vérification SSL doit être désactivée lors de la communication avec le service back-end. Si rien n'est indiqué, la valeur par défaut (false) est utilisée.

    Par exemple, la spécification de déploiement d'API de base suivante définit un service météorologique en tant que back-end HTTP.

    {
      "routes": [
        {
          "path": "/weather",
          "methods": ["GET"],
          "backend": {
            "type": "HTTP_BACKEND",
            "url": "https://api.weather.gov",
            "connectTimeoutInSeconds": 45,
            "readTimeoutInSeconds": 15,						
            "sendTimeoutInSeconds": 15,
            "isSSLVerifyDisabled": false
          }
        }
      ]
    }
  2. Enregistrez le fichier JSON qui contient la spécification de déploiement d'API.
  3. Utilisez la spécification de déploiement d'API lorsque vous créez ou mettez à jour un déploiement d'API en :

    • spécifiant le fichier JSON dans la console lorsque vous sélectionnez l'option Télécharger une API existante,
    • spécifiant le fichier JSON dans une demande adressée à l'API REST d'API Gateway.

    Pour plus d'informations, reportez-vous à Déploiement d'une API sur une passerelle d'API en créant un déploiement d'API.

  4. (Facultatif) Assurez-vous que l'API a été déployée en l'appelant (reportez-vous à Appel d'une API déployée sur une passerelle d'API).