DevPortalPagoPA



Tabella dei contenuti

CRU Configurazioni remote

Descrizione

Questa API consente alla tua Organizzazione di registrarsi presso IO come provider di contenuti remoti e di gestire nel tempo la registrazione.
La registrazione ha come oggetto le configurazioni, ossia l'insieme delle informazioni utili a creare la comunicazione tra IO e le infrastrutture della tua Organizzazione, secondo il protocollo definito nel paragrafo messaggi a contenuto remoto.
Le operazioni a disposizione comprendono:
  1. La creazione di una nuova configurazione remota
  2. La modifica di una configurazione remota esistente
  3. Il recupero delle configurazioni remote definite
  4. Il recupero di una particolare configurazione definita

API "Create"

Con questa API puoi creare una nuova configurazione per ottenere il configuration_id da utilizzare in tutte le chiamate successive, anche per la creazione dei messaggi a contenuto remoto.

API "Update"

Questa API ti consente di aggiornare una configurazione esistente, identificata dal configuration_id.

API di recupero delle configurazioni definite

Con questa API puoi recuperare le configurazioni definite nell'ambito della sottoscrizione indicata negli header. Ciascun elemento ritornato nell'array rcConfigList riporta il nome, la descrizione, la presenza di precondizioni e i dati tecnici propri della configurazione (URL di base e informazioni di autenticazione).

API di recupero di una configurazione

Con questa API, utilizzando come chiave il configuration_id, puoi recuperare i dati specifici della corrispondente configurazione.

Esempi

Creazione di una configurazione remota

Nell'esempio riportato, si richiede la creazione di una nuova configurazione relativa al solo ambiente di produzione, per il quale sono indicati:
  • la URL di base nel campo base_url ("https://theremotecontentdomain.tld/basepath")
  • la relativa API key con cui si autenticherà su IO ("ac66427c-584b-4c81-9443-e761a226d33d", nel campo**key**, valore che i tuoi sistemi si attenderanno nell'header con nome "X-API-KEY" indicato nel campo header_key_name)
1curl --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations' \
2--header 'Content-Type: application/json' \
3--header 'Accept: application/json' \
4--header 'Ocp-Apim-Subscription-Key: REDACTED' \
5--data '{
6  "name": "IoRemoteConfig01",
7  "description": "Configurazione contenuti remoti per app IO - Server 1",
8  "disable_lollipop_for": [],
9  "has_precondition": "NEVER",
10  "is_lollipop_enabled": false,
11  "prod_environment": {
12    "base_url": "https://theremotecontentdomain.tld/basepath",
13    "details_authentication": {
14      "header_key_name": "X-API-Key",
15      "key": "ac66427c-584b-4c81-9443-e761a226d33d",
16      "type": "API-KEY"
17    }
18  }
19}'
20
Il campo has_precondition regola l'interpretazione, da parte di IO, del corrispondente campo Has_precondition che indicherai in fase di creazione di un messaggio a contenuto remoto, secondo il seguente schema:
[non specificato]Le precondizioni all'apertura del messaggio saranno mostrate coerentemente con l'impostazione di has_precondition a livello di singolo messaggio
has_precondition: NONESe il campo has_precondition non è specifciato a livello di singolo messaggio, questo non avrà precondizioni all'apertura; altrimenti, queste saranno mostrate coerentemente con quel valore
has_precondition: ONCESe il campo has_precondition non è specifciato a livello di singolo messaggio, questo avrà precondizioni all'apertura mostrate solo finché il messaggio stesso non sarà stato letto dal destinatario; altrimenti, le precondizioni saranno mostrate coerentemente con il valore indicato per quello specifico messaggio
has_precondition: ALWAYSSe il campo has_precondition non è specifciato a livello di singolo messaggio, le precondizioni all'apertura saranno mostrate sempre, ad ogni apertura; altrimenti, saranno mostrate coerentemente con il valore indicato per quello specifico messaggio
In risposta otterrai, nel campo "configuration_id", l'identificativo della configurazione che dovrai usare in tutte le chiamate seguenti, comprese quelle di creazione dei messaggi a contenuto remoto che dovranno essere serviti da essa.
1{
2    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029"
3}
4

Creazione di configurazioni remote distinte per test e produzione

In questo secondo esempio, puoi vedere come creare una configurazione relativa agli ambienti di test e produzione.
I due blocchi "prod_environment" e "test_environment" sono utilizzati da IO per contattare la tua infrastruttura secondo il seguente schema:
indichi solo "prod_environment"IO ti contatterà usando sempre quella configurazione
indichi solo "test_environment"IO ti contatterà usando sempre quella configurazione
indichi sia "prod_environment" che "test_environment"IO ti contatterà usando la configurazione indicata in "test_environment" solo se il codice fiscale del destinatario del messaggio è incluso nell'array "test_users", altrimenti lo farà usando la configurazione indicata in "prod_environment"
1curl --request POST --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations' \
2--header 'Content-Type: application/json' \
3--header 'Accept: application/json' \
4--header 'Ocp-Apim-Subscription-Key: REDACTED' \
5--data '{
6  "name": "IoRemoteConfig01",
7  "description": "Configurazione contenuti remoti per app IO - Server 1",
8  "disable_lollipop_for": [],
9  "has_precondition": "NEVER",
10  "is_lollipop_enabled": false,
11  "test_environment": {
12    "base_url": "https://theremotecontentdomain_test.tld/basepath",
13    "details_authentication": {
14      "header_key_name": "X-API-Key",
15      "key": "78aec1e4-f625-4644-b9d9-0f3fdc8cbe60",
16      "type": "API-KEY"
17    },
18    "test_users": [
19      "HGDZDH64P28G225I",
20      "ZLMYPD56M70L669Y"
21    ]
22  },
23  "prod_environment": {
24    "base_url": "https://theremotecontentdomain.tld/basepath",
25    "details_authentication": {
26      "header_key_name": "X-API-Key",
27      "key": "ac66427c-584b-4c81-9443-e761a226d33d",
28      "type": "API-KEY"
29    }
30  }
31}'
32
In risposta otterrai, nel campo "configuration_id", l'identificativo della configurazione che dovrai usare in tutte le chiamate seguenti, comprese quelle di creazione dei messaggi a contenuto remoto che dovranno essere serviti da essa.
1{
2    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029"
3}
4

Recupero delle configurazioni definite

In questo esempio ti mostriamo come recuperare l'elenco completo delle configurazioni che hai definito nell'ambito della tua sottoscrizione:
1curl --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations' \
2--header 'Accept: application/json' \
3--header 'Ocp-Apim-Subscription-Key: REDACTED'
4
1{
2  "rcConfigList": [
3    {
4      "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029",
5      "name": "IoRemoteConfig01",
6      "description": "Configurazione contenuti remoti per app IO - Server 1",
7      "disable_lollipop_for": [],
8      "has_precondition": "NEVER",
9      "is_lollipop_enabled": false,
10      "test_environment": {
11        "base_url": "https://theremotecontentdomain_test.tld/basepath",
12        "details_authentication": {
13          "header_key_name": "X-API-Key",
14          "key": "78aec1e4-f625-4644-b9d9-0f3fdc8cbe60",
15          "type": "API-KEY"
16        },
17        "test_users": [
18          "HGDZDH64P28G225I",
19          "ZLMYPD56M70L669Y"
20        ]
21      },
22      "prod_environment": {
23        "base_url": "https://theremotecontentdomain.tld/basepath",
24        "details_authentication": {
25          "header_key_name": "X-API-Key",
26          "key": "ac66427c-584b-4c81-9443-e761a226d33d",
27          "type": "API-KEY"
28        }
29      }
30    }
31  ]
32}
33

Recupero di una specifica configurazione

In questo esempio puoi vedere come, essendo in possesso di un configuration_id, puoi recuperare tutte le informazioni relative a una configurazione definita in precedenza:
1curl --location 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations/DFE12CC534E649CD8D63BF1BAA547029' \
2--header 'Accept: application/json' \
3--header 'Ocp-Apim-Subscription-Key: REDACTED'
4
1{
2    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029",
3    "description": "Configurazione contenuti remoti per app IO - Server 1",
4    "disable_lollipop_for": [],
5    "has_precondition": "NEVER",
6    "is_lollipop_enabled": false,
7    "name": "IoRemoteConfig01",
8    "prod_environment": {
9        "base_url": "https://theremotecontentdomain.tld/basepath",
10        "details_authentication": {
11          "header_key_name": "X-API-Key",
12          "key": "ac66427c-584b-4c81-9443-e761a226d33d",
13          "type": "API-KEY"
14        }
15    }
16}
17

Modifica di una configurazione esistente

In questo esempio ti mostriamo come puoi aggiornare i dati di una configurazione definita in precedenza, nello specifico qui si modifica la sua descrizione:
1curl --location --request PUT 'https://api.io.pagopa.it/api/v1/messages-sending/remote-contents/configurations/DFE12CC534E649CD8D63BF1BAA547029' \
2--header 'Content-Type: application/json' \
3--header 'Accept: application/json' \
4--header 'Ocp-Apim-Subscription-Key: REDACTED' \
5--data '{
6    "configuration_id": "DFE12CC534E649CD8D63BF1BAA547029",
7    "description": "***NUOVA*** configurazione contenuti remoti per app IO - Server 1",
8    "disable_lollipop_for": [],
9    "has_precondition": "NEVER",
10    "is_lollipop_enabled": false,
11    "name": "IoRemoteConfig01",
12    "prod_environment": {
13        "base_url": "https://theremotecontentdomain.tld/basepath",
14        "details_authentication": {
15          "header_key_name": "X-API-Key",
16          "key": "ac66427c-584b-4c81-9443-e761a226d33d",
17          "type": "API-KEY"
18        }
19    }
20}'
21
1204 No content.
2

Risorse utili

Hai bisogno di aiuto?

Scrivi un’email in cui descrivi il tuo problema o dubbio all’indirizzo onboarding@io.italia.it

Dicci cosa ne pensi

Per segnalare problemi o dare feedback, lascia un commento nello spazio Github dell'app IO