Creazione di una specifica di distribuzione API

Scopri come creare una specifica API (definizione leggibile da un computer di un'API in formato JSON) da utilizzare con API Gateway.

Prima di poter distribuire un'API in un gateway API, è necessario creare una specifica di distribuzione API. Ogni distribuzione API ha una specifica di distribuzione API.

Ogni specifica di distribuzione API descrive un set di risorse e i metodi (ad esempio, GET, PUT) che possono essere eseguiti su ogni risorsa.

Puoi utilizzare un singolo gateway API come frontend per più servizi backend:

  • Creazione di una singola distribuzione API nel gateway API, con una specifica di distribuzione API che definisce più servizi backend.
  • Creazione di più distribuzioni API sullo stesso gateway API, ognuna con una specifica di distribuzione API che definisce uno o più servizi backend.

In genere, i servizi backend si troveranno nella stessa VCN del gateway API su cui si distribuisce un'interfaccia API. Tuttavia, non devono esserlo. Nella specifica di distribuzione API, puoi descrivere i servizi backend che si trovano in una subnet privata o pubblica nella tua tenancy, nonché i servizi al di fuori della tua tenancy (inclusa la rete Internet pubblica). Ovunque si trovino, i servizi backend devono essere instradati dalla subnet contenente il gateway API su cui viene distribuita l'API. Ad esempio, se il servizio backend si trova sulla rete Internet pubblica, la VCN deve disporre di un gateway Internet per consentire al gateway API di instradare le richieste al servizio backend.

È possibile creare una specifica di distribuzione API:

  • Utilizzo delle finestre di dialogo nella console durante la creazione di una distribuzione API.
  • Utilizzare l'editor JSON preferito per creare un file JSON separato. È quindi possibile specificare il file JSON quando si utilizza la console, l'interfaccia CLI o l'interfaccia API per creare una distribuzione API.
  • Utilizzando un file di descrizione API caricato per una risorsa API. Il file di descrizione API fornisce alcuni valori iniziali per la specifica di distribuzione API, che è possibile modificare ed estendere durante la distribuzione della risorsa API in un gateway API. Vedere Creazione di una risorsa API con una descrizione API.

Le istruzioni riportate in questo argomento mostrano una specifica di distribuzione API di base con un singolo backend, un solo instradamento e nessun criterio di richiesta o risposta. Per una specifica di distribuzione API più tipica che include più backend, ognuno con uno o più instradamenti, vedere Specifica di distribuzione API di esempio con più backend.

Inoltre, è possibile aggiungere criteri di richiesta e risposta applicabili agli instradamenti in una specifica di distribuzione API (vedere Aggiunta di criteri di richiesta e di risposta alle specifiche di distribuzione API).

Utilizzo di un editor JSON per creare una specifica di distribuzione API in un file JSON separato

Per creare una specifica di distribuzione API in un file JSON, effettuare le operazioni riportate di seguito.

  1. Utilizzando l'editor JSON preferito, creare la specifica di distribuzione API in un file JSON nel formato seguente:

    {
      "requestPolicies": {},
      "routes": [
        {
          "path": "<api-route-path>",
          "methods": ["<method-list>"],
          "backend": {
            "type": "<backend-type>",
            "<backend-target>": "<identifier>"
          },
          "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".
    • <backend-type> specifica il tipo di servizio backend. I valori validi sono ORACLE_FUNCTIONS_BACKEND, HTTP_BACKEND e STOCK_RESPONSE_BACKEND.
    • <backend-target> e <identifier> specificano il servizio backend. I valori validi per <backend-target> e <identifier> dipendono dal valore di <backend-type>, come indicato di seguito.

    Ad esempio, la seguente specifica di distribuzione API di base definisce una semplice funzione serverless Hello World in Funzioni OCI come un singolo backend:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }

    Per un esempio più complesso che definisce più backend, vedere Specifica di distribuzione API di esempio con più backend.

  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.

Utilizzo di un file di descrizione API per creare una specifica di distribuzione API

Per creare una specifica di distribuzione API basata su un file di descrizione API caricato per una risorsa API, vedere Creazione di una risorsa API con una descrizione API

Il file di descrizione API fornisce alcuni valori iniziali per la specifica di distribuzione API, che è possibile modificare ed estendere durante la distribuzione della risorsa API in un gateway API.

Specifica di distribuzione API di esempio con più backend

Puoi creare una singola distribuzione API su un gateway API, con una specifica di distribuzione API che definisce più servizi backend.

Ad esempio, la seguente specifica di distribuzione API definisce una semplice funzione serverless Hello World in OCI Functions come backend e l'API National Weather Service come secondo backend.

{
  "routes": [
    {
      "path": "/hello",
      "methods": ["GET"],
      "backend": {
        "type": "ORACLE_FUNCTIONS_BACKEND",
        "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
      }
    },
    {
      "path": "/weather",
      "methods": ["GET"],
      "backend": {
        "type": "HTTP_BACKEND",
        "url": "https://api.weather.gov"
      }
    }
  ]
}