Tabella dei contenuti
Richiediamo informazioni sull'indirizzo digitale
L'e-service “Attestazione - Verifica indirizzo digitale” pubblicato sul catalogo, consente di verificare la presenza e la correttezza di un determinato indirizzo digitale, simulando un ente che possiede tutte le informazioni anagrafiche legate agli indirizzi digitali dei soggetti.
In questo tutorial vedremo un caso reale di applicazione di questo servizio.
Il caso d'uso
L'e-service in oggetto mi permette di recuperare tali dati grazie all’invocazione del seguente set di API:
1POST /digital-address-verification/list
2GET /digital-address-verification/list/state/{id}
3GET /digital-address-verification/list/response/{id}
4
I metodi sopra esposti permettono di effettuare un’estrazione massiva degli indirizzi, a partire dagli id soggetto indicati all’interno della request.
Data preparation
La prima cosa da fare è la configurazione dei dati: procediamo alla fase di Data Preparation.
Supponiamo di avere la seguente base dati all’interno della nostra applicazione:
ID | Nome | Cognome | PEC |
---|---|---|---|
RSSMRA80A01H501U | Mario | Rossi | NULL |
LGUBCH80A01H501B | Luigi | Bianchi | NULL |
In accordo a questa effettuiamo la Data Preparation simulando il seguente scenario:
- L’id RSSMRA80A01H501U è un soggetto noto a cui è associata una PEC ancora valida
- L’id LGUBCH80A01H501B è un soggetto noto a cui è associata una PEC non più valida
Replichiamo la configurazione desiderata nel seguente modo:
1POST /digital-address-verification/data-preparation
2
Input
Header:
1Content-Type: application/json
2Authorization: Bearer {{bearerToken}}
3x-correlation-id: {{myUniqueCorrelationId}}
4apikey: {{apikey}}
5
Payload:
1{
2 "idSubject": "RSSMRA80A01H501U",
3 "from": "2017-07-21T17:32:28Z",
4 "digitalAddress": [
5 {
6 "digitalAddress": "example_1@pec.it",
7 "profession": "Doctor",
8 "information": {
9 "reason": "CESSAZIONE_UFFICIO",
10 "endDate": "2999-12-31T17:32:28Z"
11 }
12 }
13 ]
14}
15
Output
Response:
Status codes:
- 201 - Configurazione salvata con successo
- 400 - Errore formato dati input
Abbiamo configurato il primo soggetto, procediamo alla configurazione del secondo:
Input
Header:
1Content-Type: application/json
2Authorization: Bearer {{bearerToken}}
3x-correlation-id: {{myUniqueCorrelationId}}
4apikey: {{apikey}}
5
Payload:
1{
2 "idSubject": "LGUBCH80A01H501B",
3 "from": "2017-07-21T17:32:28Z",
4 "digitalAddress": [
5 {
6 "digitalAddress": "example_2@pec.it",
7 "profession": "Doctor",
8 "information": {
9 "reason": "CESSAZIONE_VOLONTARIA",
10 "endDate": "2004-12-31T17:32:28Z"
11 }
12 }
13 ]
14}
15
Output
Response:
Status codes:
- 201 - Configurazione salvata con successo
- 400 - Errore formato dati input
Abbiamo configurato anche il secondo soggetto, specificando che la data di fina validità della PEC è antecedente alla data odierna.
Di seguito gli altri end-point per la gestione dei record presenti nella base dati:
Ottenimento dei dati
Con questa chiamata è possibile ottenere la lista delle organizzazioni presenti all'interno della base dati.
1GET /digital-address-verification/data-preparation
2
Input
Header:
1Content-Type: application/json
2Authorization: Bearer {{bearerToken}}
3x-correlation-id: {{myUniqueCorrelationId}}
4apikey: {{apikey}}
5
Output
Response
- Status code: 200
1{
2 "data": [
3 {
4 "idSubject": "VRANGL74M28R701X",
5 "from": "2017-07-21T17:32:28Z",
6 "digitalAddress": [
7 {
8 "digitalAddress": "example@pec.it",
9 "profession": "Doctor",
10 "information": {
11 "reason": "CESSAZIONE_VOLONTARIA",
12 "endDate": "2017-07-21T17:32:28Z"
13 }
14 }
15 ]
16 }
17 ]
18}
19
- Status code: 400, 401, 403, 404, 500, 503
1{
2 "status": "<HTTP_CODE>",
3 "type": "<HTTP_STATUS>",
4 "detail": "<detail_error>"
5}
6
Eliminazione dei dati
1DELETE /digital-address-verification/data-preparation
2
Input
Header:
1Content-Type: application/json
2Authorization: Bearer {{bearerToken}}
3x-correlation-id: {{myUniqueCorrelationId}}
4apikey: {{apikey}}
5
Output
Response
- Status code: 202 - Richiesta completata con successo
- Status code: 400, 401, 403, 404, 500, 503
1{
2 "status": "<HTTP_CODE>",
3 "type": "<HTTP_STATUS>",
4 "detail": "<detail_error>"
5}
6
Ottenimento di un singolo record
1GET /digital-address-verification/data-preparation/:idSubject
2
Input
Header:
1Content-Type: application/json
2Authorization: Bearer {{bearerToken}}
3x-correlation-id: {{myUniqueCorrelationId}}
4apikey: {{apikey}}
5
Output
Response
- Status code: 200
1{
2 "data": [
3 {
4 "idSubject": "VRANGL74M28R701X",
5 "from": "2017-07-21T17:32:28Z",
6 "digitalAddress": [
7 {
8 "digitalAddress": "example@pec.it",
9 "profession": "Doctor",
10 "information": {
11 "reason": "CESSAZIONE_VOLONTARIA",
12 "endDate": "2017-07-21T17:32:28Z"
13 }
14 }
15 ]
16 }
17 ]
18}
19
- Status code: 400, 401, 403, 404, 500, 503
1{
2 "status": "<HTTP_CODE>",
3 "type": "<HTTP_STATUS>",
4 "detail": "<detail_error>"
5}
6
Eliminazione di un singolo record
1DELETE /digital-address-verification/data-preparation/:idSubject
2
Input
Header:
1Content-Type: application/json
2Authorization: Bearer {{bearerToken}}
3x-correlation-id: {{myUniqueCorrelationId}}
4apikey: {{apikey}}
5
Output
Response
- Status code: 200 - Richiesta completata con successo
- Status code: 400, 401, 403, 404, 500, 503
1{
2 "status": "<HTTP_CODE>",
3 "type": "<HTTP_STATUS>",
4 "detail": "<detail_error>"
5}
6
Procediamo a questo punto all’invocazione delle API messe a disposizione dell’e-service.
Invocazione e-service per estrazione massiva
Effettuo la seguente chiamata per l’id soggetto di Mario Rossi e Lugi Bianchi.
1POST /digital-address-verification/list
2
Curl
1curl --location '{host}/digital-address-verification/list' \
2--header 'Content-Type: application/json' \
3--header 'Accept: application/json' \
4--header 'x-correlation-id: 123456' \
5--header 'Authorization: Bearer xxx' \
6--data '{
7 "idSubjects": [
8 "RSSMRA80A01H501U",
9 "LGUBCH80A01H501B"
10 ],
11 "idRequest": "00001"
12}'
13
Output
Response:
1{
2 "state": "PRESA_IN_CARICO",
3 "message": "PRESA_IN_CARICO",
4 "id": "20d0c1e1-b9c2-460b-8f8a-c8c6f264bb81",
5 "requestTimestamp": "2024-10-15T14:36:24.028Z"
6}
7
Status codes:
- 200 - Richiesta effettuata con successo
La response ci indica che la nostra richiesta di estrazione massiva è stata presa in carico. Utilizzeremo l’id presente all’interno della response per invocare la successiva API.
Invocazione e-service per Verifica stato esportazione massiva
Effettuiamo la seguente chiamata, utilizzando l’id ricevuto nella chiamata precedente:
1POST /digital-address-verification/list/state/:id
2
Curl
1curl --location '{host}/digital-address-verification/list/state/20d0c1e1-b9c2-460b-8f8a-c8c6f264bb81' \
2--header 'Accept: application/json' \
3--header 'x-correlation-id: 1' \
4--header 'Authorization: Bearer xxx'
5
Output
Response:
1application/json
2{
3 "status": "IN_ELABORAZIONE",
4 "message": "IN_ELABORAZIONE"
5}
6
Status codes:
- 200 - Richiesta effettuata con successo
La response ci indica che la nostra richiesta di estrazione massiva è ancora in fase di elaborazione.
Effettuiamo nuovamente la chiamata, finché non riceviamo una response che indichi che l’estrazione è terminata con successo.
Non appena il campo “status” presente all’interno della response è DISPONIBILE, procediamo con la successiva invocazione.
Effettuiamo la seguente chiamata, utilizzando l’id ricevuto nella richiesta di estrazione massiva
1POST /digital-address-verification/list/response/:id
2
Curl
1curl --location 'host}/digital-address-verification/list/response/20d0c1e1-b9c2-460b-8f8a-c8c6f264bb81' \
2--header 'Accept: application/json' \
3--header 'x-correlation-id: 1' \
4--header 'Authorization: Bearer xxx'
5
Output
Response:
1{
2 "list": [
3 {
4 "idSubject": "RSSMRA80A01H501U",
5 "from": "2017-07-21T17:32:28Z",
6 "digitalAddress": [
7 {
8 "digitalAddress": "example_1@pec.it",
9 "profession": "Doctor",
10 "information": {
11 "reason": "CESSAZIONE_UFFICIO",
12 "endDate": "2999-12-31T17:32:28Z"
13 }
14 }
15 ]
16 },
17 {
18 "idSubject": "LGUBCH80A01H501B",
19 "from": "2017-07-21T17:32:28Z",
20 "digitalAddress": [
21 {
22 "digitalAddress": "example_2@pec.it",
23 "profession": "Doctor",
24 "information": {
25 "reason": "CESSAZIONE_VOLONTARIA",
26 "endDate": "2004-12-31T17:32:28Z"
27 }
28 }
29 ]
30 }
31 ]
32}
33
Status codes:
- 200 - Richiesta effettuata con successo
La response ci restituisce i dati presenti nella base dati dell’ente.
Esito finale
Dopo aver interrogato l’e-service possiamo procedere all’aggiornamento della nostra base dati con le informazioni che abbiamo recuperato.
Di seguito una panoramica della situazione a seguito dell’aggiornamento
ID | Nome | Cognome | Pec |
---|---|---|---|
RSSMRA80A01H501U | Mario | Rossi | example_1@pec.it |
LGUBCH80A01H501B | Luigi | Bianchi | NULL |
La nostra base dati è stata correttamente aggiornata. Non abbiamo inserito l’indirizzo digitale per il soggetto Luigi Bianchi, essendo ormai obsoleto.
Diagramma di flusso
.png)
Hai bisogno di aiuto?
Apri un ticket utilizzando l’apposita funzione all’interno della tua Area Riservata