URL di Invocazione API

Questa sezione visualizza:

  • Base URL: Indica il prefisso utilizzato per visualizzare le URL di Invocazione delle API.

  • Base URL Fruizione: permette di differenziare il prefisso utilizzato per visualizzare le URL di Invocazione delle fruizioni dalle erogazioni.

  • Regole Proxy Pass: tramite questa voce è possibile ridefinire le URL di Invocazioni, per specifiche fruizioni e/o erogazioni, allineandole a regole configurate su un revere proxy che media le comunicazioni http con GovWay.

Regole Proxy Pass

Questa sezione permette di ridefinire la modalità di visualizzazione delle Url di Invocazione delle API esposte da GovWay per assicurare che, in presenza di un reverse proxy che media le comunicazioni http con GovWay, sia possibile configurare opportunamente le url di invocazione delle API esposte da GovWay allineandole con le eventuali configurazioni specifiche realizzate sul reverse proxy.

Nota

La funzionalità permette di configurare come vengono visualizzate le URL di Invocazione sulla govwayConsole, per allinearsi ad un eventuale reverse proxy che media le comunicazioni http con GovWay. Le API, su GovWay, rimangono raggiungibili solamente sulle url originali e dovrà essere il reverse proxy ad effettuare la conversione rispetto a quella esposta.

Le regole create sono visualizzate nella forma di elenco ordinato (Fig. 306). L’icona iniziale di ciascun elemento consente di modificarne la posizione. Per ogni regola viene visualizzato il suo stato, il nome e la descrizione.

../../../_images/ElencoRegoleProxyPass.png

Fig. 306 Lista Regole Proxy Pass

Per ogni regola (Fig. 307) deve essere obbligatoriamente definita una stringa libera o una espressione regolare utilizzata per individuare l’applicabilità della regola attraverso un confronto con il contesto dell’API. Il contesto è l’URL di Invocazione dell’API senza il prefisso Base URL. Inoltre per ogni regola è possibile indicare altri criteri di applicabilità opzionali quali eventuali profilo di interoperabilità, un soggetto, una tipologia (fruizione/erogazione) o un tipo di api (soap/rest).

../../../_images/AddRegolaProxyPass.png

Fig. 307 Creazione Regola Proxy Pass

Il dettaglio dei campi associati ad una regola sono raggruppati in tre sottosezioni:

Informazioni generiche:

  • Nome: Identificativo della regola

  • Stato: Indica se la regola è abilitata o meno.

  • Descrizione: (Opzionale) Descrizione generica della regola

Le regole di applicabilità vengono definite dai seguenti campi:

  • Espressione Regolare: Indica se la regola sottostante è una espressione regolare o una stringa libera.

  • Regola: Stringa libera o espressione regolare.

    • L’espressione regolare viene utilizzata per verificarne il match sull contesto dell’API (url di invocazione senza la Base URL)

    • Nel caso di stringa libera si ha un’applicabilità se il contesto dell’API (url di invocazione senza la Base URL) inizia con la stringa fornita.

  • Profilo: (Opzionale) Profilo di Interoperabilità per il quale si applica la regola

  • Soggetto: (Opzionale) Soggetto interno per il quale si applica la regola

  • Ruolo: (Opzionale) Tipologia di API (Erogazione/Fruizione) per il quale si applica la regola

  • Tipo API: (Opzionale) Tipo di API (REST/SOAP) per il quale si applica la regola

La nuova url di invocazione viene definita attraverso i campi “Base URL” e “Contesto”.

  • Base URL: Permette di ridefinire la Base URL utilizzata rispetto a quanto definito nella configurazione generale

  • Contesto: Indica il contesto da utilizzare dopo la Base URL

Nei campi “Base URL” e “Contesto” è possibile utilizzare le seguenti informazioni dinamiche:

  • Se è stata fornita una espressione regolare, nei due campi possono essere utilizzati le keyword “${posizione}” per impostare un valore dinamico individuato tramite l’espressione regolare fornita. Il primo match, all’interno dell’espressione regolare, è rappresentata da “${0}” (Ad esempio: http://server:8080/${0}/altro/${1}/)

  • Se è abilitata la gestione dei canali (vedi Canali) è possibile utilizzare la keyword “${canale}” per impostare l’identificativo del canale associato all’API. Maggiori esempi vengono forniti nella sezione Url di Invocazione e Canali.

  • È possibile utilizzare la keyword “${tag}” per impostare l’identificativo del tag associato all’API. Poichè ad un’API è possibile associare più tag verrà utilizzato quello alla prima posizione ma è possibile indicarne uno differente tramite l’espressione ${tag[posizione]}. Il primo tag, all’interno della lista, è rappresentata da “${tag[0]}”, ad esempio: http://server:8080/${tag[0]}/

Esempio 1

Tutte le API REST erogate dal Soggetto “ENTE” tramite il profilo “ModI” possiedono nell’installazione di default la seguente URL di Invocazione:

Per modificare la url di invocazione in modo da spostare il nome del soggetto come hostname, e rimodulare il contesto in modo da visualizzare prima la versione, è possibile utilizzare la seguente configurazione di proxy pass:

Criteri di Applicabilità:

  • Espressione Regolare: true

  • Regola: .+/in/(.+)/(.+)/v(.+)

  • Profilo: ModI

  • Soggetto: ENTE

  • Ruolo: Erogazione

  • Tipo API: REST

Nuova URL di Invocazione

  • Base URL: http://${0}/

  • Contesto: v${2}/api/${1}

L’url di invocazione prodotta sarà:

Esempio 2

Supponiamo di voler modificare l’url di invocazione dell’API “PetStore” versione 1 erogata dal soggetto “ENTE” tramite il profilo di interoperabilità “ModI”. Nell’installazione di default viene fornita la seguente URL di Invocazione:

Lo scopo è quello di eliminare il nome del soggetto e di togliere la “v” dalla versione. Per farlo è possibile utilizzare la seguente configurazione di proxy pass:

Criteri di Applicabilità:

  • Espressione Regolare: false

  • Regola: /rest/in/ENTE/PetStore/v1

  • Profilo: ModI

  • Soggetto: Qualsiasi

  • Ruolo: Qualsiasi

  • Tipo API: Qualsiasi

Nuova URL di Invocazione

  • Base URL:

  • Contesto: /rest/in/PetStore/1

L’url di invocazione prodotta sarà: