Aggiunta di un URL HTTP o HTTPS come backend del gateway API

Scopri come creare una distribuzione API per accedere agli URL HTTP e HTTPS con API Gateway.

Un requisito comune è quello di creare un'API con l'URL HTTP o HTTPS di un servizio backend e un gateway API che fornisca l'accesso front-end all'URL backend.

Dopo aver utilizzato il servizio API Gateway per creare un gateway API, è possibile creare una distribuzione API per accedere agli URL HTTP e HTTPS.

L'URL HTTP o HTTPS specificato per il servizio backend può essere:

  • L'URL di un servizio disponibile pubblicamente su Internet.
  • L'URL di un servizio Oracle Cloud Infrastructure (ad esempio, OCI Functions).
  • L'URL di un servizio nella propria rete privata o interna (ad esempio, connesso alla VCN da FastConnect).

L'URL fornito nella specifica di distribuzione API per identificare il servizio backend HTTP o HTTPS può includere il nome host o l'indirizzo IP dell'host. Se si fornisce il nome host, utilizzare la proprietà Opzioni DHCP della subnet del gateway API per controllare la modalità di risoluzione dei nomi host inclusi nella specifica di distribuzione API negli indirizzi IP in runtime:

  • Se il nome host di un servizio backend è pubblicato pubblicamente su Internet o se appartiene a un'istanza nella stessa VCN, selezionare un set di opzioni DHCP per la subnet del gateway API con Internet e resolver VCN forniti da Oracle come tipo di DNS. Questa è l'impostazione predefinita se non si seleziona esplicitamente un set di opzioni DHCP.
  • Se il nome host fa riferimento a un servizio backend nella propria rete privata o interna, selezionare un set di opzioni DHCP per la subnet del gateway API con resolver personalizzato come tipo di DNS e l'URL di un server DNS appropriato in grado di risolvere il nome host in un indirizzo IP.

Si noti che è possibile modificare i dettagli del server DNS nel set di opzioni DHCP specificato per la subnet di un gateway API. Il gateway API verrà riconfigurato per utilizzare i dettagli aggiornati del server DNS entro due ore. Per ulteriori informazioni sulla risoluzione dei nomi host negli indirizzi IP, vedere DNS in Your Virtual Cloud Network e Opzioni DHCP.

È possibile aggiungere back-end HTTP e HTTPS a una specifica di distribuzione API effettuando le operazioni riportate di seguito.

  • utilizzo di Console
  • modifica di un file JSON

Utilizzo della console per aggiungere backend HTTP o HTTPS a una specifica di distribuzione API

Per aggiungere un backend HTTP o HTTPS a una specifica di distribuzione API utilizzando la console:

  1. Creare o aggiornare una distribuzione API utilizzando la console, selezionare l'opzione Da zero e immettere i dettagli nella pagina Informazioni di base.

    Per ulteriori informazioni, vedere Distribuzione di un'interfaccia API in un gateway API mediante la creazione di una distribuzione API e Aggiornamento di un gateway API o di una distribuzione API.

  2. Nella pagina Autenticazione specificare le opzioni di autenticazione.

    Per ulteriori informazioni sulle opzioni di autenticazione, vedere Aggiunta di autenticazione e autorizzazione alle distribuzioni API.

  3. Nella pagina Cicli creare un nuovo instradamento e specificare:

    • Percorso: un percorso per le chiamate API che utilizzano i metodi elencati per il servizio backend. Tenere presente che il percorso di instradamento specificato è il seguente:

    • Metodi: uno o più metodi accettati dal servizio backend. Ad esempio, GET, PUT.
    • Aggiungere un backend singolo o Aggiungere più backend: indica se instradare tutte le richieste allo stesso backend o instradare le richieste a backend diversi in base alla variabile di contesto e alle regole immesse.

      Queste istruzioni presuppongono di voler utilizzare un singolo backend, quindi selezionare Aggiungi un backend singolo. In alternativa, se si desidera utilizzare backend diversi, selezionare Aggiungi più backend e seguire le istruzioni in Utilizzo della console per aggiungere la selezione backend dinamica a una specifica di distribuzione API.

    • Tipo backend: il tipo di servizio backend è HTTP.
    • URL: l'URL che si desidera utilizzare come servizio backend, nel formato <protocol>://<host>:<port>/<path>, dove:

      • <protocol> è http o https.
      • <host> è il nome host o l'indirizzo IP dell'host del servizio backend. Ad esempio, api.weather.gov. Se si fornisce un nome host, utilizzare la proprietà Opzioni DHCP della subnet del gateway API per controllare la modalità di risoluzione dei nomi host negli indirizzi IP in runtime.
      • <port> è facoltativamente un numero di porta.
      • <path> è facoltativamente una sottodirectory o un file nell'host in cui si trova il servizio backend.

        Si noti che <path> non deve contenere parametri direttamente, ma può contenere variabili di contesto. Per ulteriori informazioni ed esempi che mostrano come utilizzare le variabili di contesto per sostituire i parametri di percorso, query e intestazione nel percorso, vedere Aggiunta di variabili di contesto ai criteri e alle definizioni backend HTTP.

      Ad esempio, "url": "https://api.weather.gov".

    • Timeout di definizione della connessione in secondi: facoltativamente, un valore a virgola mobile che indica per quanto tempo (in secondi) consentire quando si stabilisce una connessione con il servizio backend. Il minimo è 1,0, il massimo è 75,0. Se non specificato, viene utilizzato il valore predefinito di 60,0 secondi.
    • Timeout di trasmissione richiesta in secondi: facoltativamente, un valore a virgola mobile che indica per quanto tempo (in secondi) consentire durante la trasmissione di una richiesta al servizio backend. Il minimo è 1,0, il massimo è 300,0. Se non specificato, viene utilizzato il valore predefinito di 10,0 secondi.
    • Lettura del timeout della risposta in secondi: facoltativamente, un valore a virgola mobile che indica per quanto tempo (in secondi) consentire la lettura di una risposta dal servizio backend. Il minimo è 1,0, il massimo è 300,0. Se non specificato, viene utilizzato il valore predefinito di 10,0 secondi.
    • Disabilita verifica SSL: indica se disabilitare la verifica SSL durante la comunicazione con il servizio backend. Per impostazione predefinita, questa opzione non è selezionata.

    In questo esempio, l'instradamento definisce un servizio meteo come backend HTTP.

    Campo : Immettere:
    Percorso: /weather
    Metodi: GET
    Tipo di backend: HTTP
    URL: https://api.weather.gov
    Timeout del tentativo di stabilire la connessione in secondi: 45
    Timeout trasmissione richiesta in secondi: 15
    Timeout risposta di lettura in secondi: 15
    Disabilita verifica SSL: (Non selezionato)
  4. (Facoltativo) Fare clic su Altro instradamento per immettere i dettagli degli instradamenti aggiuntivi.
  5. Fare clic su Successivo per esaminare i dettagli immessi per la distribuzione API.
  6. Fare clic su Crea o su Salva modifiche per creare o aggiornare la distribuzione API.
  7. (Facoltativo) Confermare che l'interfaccia API sia stata distribuita correttamente chiamandola (vedere Chiamata di un'interfaccia API distribuita in un gateway API).

Modifica di un file JSON per aggiungere backend HTTP o HTTPS a una specifica di distribuzione API

Per aggiungere un backend HTTP o HTTPS a una specifica di distribuzione API in un file JSON, effettuare le operazioni riportate di seguito.

  1. Utilizzando l'editor JSON preferito, creare una nuova specifica di distribuzione API (vedere Creazione di una specifica di distribuzione API) nel formato seguente:

    {
      "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": {},
        }
      ]
    }

    dove:

    • "requestPolicies" specifica i criteri facoltativi per controllare il funzionamento di una distribuzione API. Se si desidera applicare i criteri a tutti gli instradamenti in una specifica di distribuzione API, posizionarli all'esterno della sezione routes. Se si desidera applicare i criteri solo a un instradamento specifico, inserire i criteri nella sezione routes. Vedere Aggiunta di criteri di richiesta e di risposta alle specifiche di distribuzione API.
    • <api-route-path> specifica un percorso per le chiamate API utilizzando i metodi elencati per il servizio backend. Tenere presente che il percorso di instradamento specificato è il seguente:

    • <method-list> specifica uno o più metodi accettati dal servizio backend, separati da virgole. Ad esempio, "GET, PUT".
    • "type": "HTTP_BACKEND" specifica che il backend del gateway API è un URL HTTP o HTTPS.
    • "url: "<identifier>" specifica l'URL che si desidera utilizzare come servizio backend nel formato <protocol>://<host>:<port>/<path>, dove:

      • <protocol> è http o https.
      • <host> è il nome host o l'indirizzo IP dell'host del servizio backend. Ad esempio, api.weather.gov. Se si fornisce un nome host, utilizzare la proprietà Opzioni DHCP della subnet del gateway API per controllare la modalità di risoluzione dei nomi host negli indirizzi IP in runtime.
      • <port> è facoltativamente un numero di porta.
      • <path> è facoltativamente una sottodirectory o un file nell'host in cui si trova il servizio backend.

        Si noti che <path> non deve contenere parametri direttamente, ma può contenere variabili di contesto. Per ulteriori informazioni ed esempi che mostrano come utilizzare le variabili di contesto per sostituire i parametri di percorso, query e intestazione nel percorso, vedere Aggiunta di variabili di contesto ai criteri e alle definizioni backend HTTP.

      Ad esempio, "url": "https://api.weather.gov".

    • "connectTimeoutInSeconds": <seconds> è un valore a virgola mobile facoltativo che indica per quanto tempo (in secondi) consentire al momento di stabilire una connessione con il servizio backend. Il minimo è 0,0, il massimo è 75,0. Se non specificato, viene utilizzato il valore predefinito di 60,0 secondi.
    • "readTimeoutInSeconds": <seconds> è un valore a virgola mobile facoltativo che indica per quanto tempo (in secondi) consentire la lettura di una risposta dal servizio backend. Il minimo è 0,0, il massimo è 300,0. Se non specificato, viene utilizzato il valore predefinito di 10,0 secondi.
    • "sendTimeoutInSeconds": <seconds> è un valore a virgola mobile facoltativo che indica per quanto tempo (in secondi) consentire durante la trasmissione di una richiesta al servizio backend. Il minimo è 0,0, il massimo è 300,0. Se non specificato, viene utilizzato il valore predefinito di 10,0 secondi.
    • "isSSLVerifyDisabled": <true|false> è un valore booleano facoltativo (true o false) che indica se disabilitare la verifica SSL durante la comunicazione con il servizio backend. Se non specificato, verrà utilizzato il valore predefinito di false.

    Ad esempio, la seguente specifica di distribuzione API di base definisce un servizio meteo come backend HTTP:

    {
      "routes": [
        {
          "path": "/weather",
          "methods": ["GET"],
          "backend": {
            "type": "HTTP_BACKEND",
            "url": "https://api.weather.gov",
            "connectTimeoutInSeconds": 45,
            "readTimeoutInSeconds": 15,						
            "sendTimeoutInSeconds": 15,
            "isSSLVerifyDisabled": false
          }
        }
      ]
    }
  2. Salvare il file JSON contenente la specifica di distribuzione API.
  3. Utilizzare la specifica di distribuzione API quando si crea o si aggiorna una distribuzione API nei modi riportati di seguito.

    • specificando il file JSON nella console quando si seleziona l'opzione Carica un'interfaccia API esistente
    • specificando il file JSON in una richiesta all'API REST del gateway API

    Per ulteriori informazioni, vedere Distribuzione di un'interfaccia API in un gateway API mediante la creazione di una distribuzione API.

  4. (Facoltativo) Confermare che l'interfaccia API sia stata distribuita chiamandola (vedere Chiamata di un'interfaccia API distribuita in un gateway API).