---
title: "Gestire gli errori HTTP durante l'integrazione automatica dei dati"
date: "2019-07-29"
categories: 
  - "data-integration"
  - "json"
  - "tools"
tags: 
  - "data-mapping"
  - "flowforce-server"
  - "http-testing"
  - "mapforce"
  - "mapforce-server"
  - "web-services"
description: Questo articolo esamina le strategie per gestire gli errori HTTP nell'integrazione automatica dei dati, utilizzando MapForce, al fine di garantire una gestione efficace delle risposte e una mappatura efficiente.
---
Status: #blog

Tags:  #data-mapping #flowforce-server #http-testing #mapforce #mapforce-server #web-services

Categories: [data-integration](/blog/it/category/data-integration.md) 
# Gestire gli errori HTTP durante l'integrazione automatica dei dati

Gli analisti di dati e altri professionisti spesso devono generare dati in tempo reale attraverso l'esecuzione automatizzata di processi di mappatura dei dati che richiedono servizi web e salvano i risultati. Durante l'esecuzione automatizzata, è importante gestire in modo appropriato qualsiasi errore HTTP imprevisto, piuttosto che interrompere il processo di integrazione.

In un post precedente, abbiamo discusso della [gestione condizionale della risposta di un servizio web REST](https://www.altova.com/blog/handling-http-errors/) per gestire gli errori HTTP, dove venivano generati file di output separati per una risposta normale e per un errore. Ora, esaminiamo una soluzione di mappatura rivista per l'esempio dello stato dell'aeroporto, al fine di generare un unico file di risultato che contenga o lo stato dell'aeroporto richiesto o una descrizione dell'errore.

![](/blog/images/airport_flip_700x335.jpg)

<!--more-->

Una strategia per ottenere un unico risultato potrebbe essere quella di considerare ogni file di output creato nella mappatura MapForce precedente come un componente intermedio, e quindi mapparli in un risultato finale che tenga conto di entrambi i possibili risultati.

Tuttavia, una soluzione più semplice consiste nell'associare direttamente una risposta normale e un risultato di errore a un unico componente di output.

Dopo aver pubblicato il nostro precedente articolo, abbiamo scoperto che il servizio web per lo stato degli aeroporti dell'FAA restituisce un errore se la richiesta contiene un campo vuoto per il codice dell'aeroporto. Questo genera un errore HTTP 404. Purtroppo, il risultato del servizio web in caso di errore viene fornito in formato HTML invece che in formato JSON, nonostante la specifica indicata nell'intestazione della richiesta

![Specificare i parametri GET del servizio web nella mappatura dei dati.](/blog/images/web-service-parameters.png)

Possiamo evitare di analizzare un errore HTML mappando direttamente il codice di stato restituito nella risposta

![Gestire gli errori HTTP mappando il codice di stato presente nella risposta](/blog/images/status-code.png)

Innanzitutto, dobbiamo aggiungere un elemento allo schema JSON del componente di destinazione per memorizzare un messaggio in caso di eventuali errori. Questo può essere facilmente realizzato utilizzando XMLSpy [Editor grafico per schemi JSON](https://www.altova.com/it/xmlspy-xml-editor#json_schema):

[![Editor grafico per schemi JSON](/blog/images/enhanced-json-schema.png)](enhanced-json-schema.png)

Nella finestra di dialogo "Dettagli", l'opzione "Occorrenza" è impostata su "Facoltativa" perché questo elemento verrà generato solo in caso di errore HTTP.

Ora possiamo creare un messaggio di errore personalizzato basato su qualsiasi codice di stato HTTP superiore a 200:

[![Gestire gli errori HTTP associando un messaggio di errore personalizzato al risultato](/blog/images/error-msg-mapping.png)](error-msg-mapping.png)

La funzione "concat" mostrata sopra include il codice di stato e il codice dell'aeroporto per fornire una spiegazione completa di qualsiasi errore.

Ecco una rappresentazione completa del nuovo schema che traccia il percorso del codice di stato fino al componente di output:

[![Gestire gli errori HTTP utilizzando percorsi alternativi per i risultati normali e quelli di errore](/blog/images/revised-mapping-1030x576.png)](revised-mapping.png)

Possiamo modificare il codice dell'aeroporto, che si trova in alto a sinistra della mappa, e quindi cliccare sul pulsante "Output" situato sotto la finestra principale della mappa per testare diversi valori di input. Quando un codice aeroportuale valido è incluso nella richiesta GET inviata al servizio web, il risultato è il file JSON che ci aspettiamo:

![Gestione degli errori HTTP: visualizzazione di un risultato corretto dell'associazione](/blog/images/normal-result.png)

Possiamo generare un errore HTTP inviando una stringa vuota nel campo che contiene il codice dell'aeroporto. Questo genera un file di risposta contenente un errore, in formato JSON:

![Gestire gli errori HTTP includendo un messaggio nel risultato](/blog/images/error-result.png)

Si prega di notare che la nostra mappatura prevede ancora corpi di risposta separati per i codici di stato HTTP compresi tra 200 e 299, e per i codici compresi tra 300 e 599. Questo garantisce che solo i risultati JSON validi vengano mappati per l'output. I risultati di errore ricevuti in formato HTML non vengono mappati; vengono semplicemente scartati.

![Gestire gli errori HTTP: esempio di un risultato di errore fornito dal servizio web in formato HTML](/blog/images/error-message-2.png)

### Automatizzare la mappatura dei dati e gestire gli errori HTTP

Nel nostro precedente articolo, abbiamo descritto uno scenario di automazione in cui vogliamo controllare e registrare lo stato di 50 aeroporti a intervalli regolari. Per raggiungere questo obiettivo, sarà necessario chiamare il servizio web e analizzare i risultati per ogni singolo codice aeroportuale.

La mappatura di esempio originale è già stata progettata tenendo conto dell'automazione. MapForce Server è uno strumento server multipiattaforma che [automatizza l'esecuzione delle mappature dei dati create con MapForce](https://www.altova.com/it/mapforce-server). Il componente in alto a sinistra della mappatura, che segue la stringa costante, è un parametro di input che può essere fornito a runtime per l'esecuzione da parte di MapForce Server.

![Componente dei parametri di input per l'esecuzione automatizzata della mappatura](/blog/images/automating-input.png)

La stringa "PHX" presente nello screenshot viene utilizzata esclusivamente durante l'esecuzione diretta in MapForce.

FlowForce Server è un sistema altamente personalizzabile [motore di workflow per l'automazione efficiente di attività di integrazione dati su larga scala](https://www.altova.com/it/flowforceserver). Un processo FlowForce Server può eseguire la mappatura utilizzando MapForce Server una volta per ogni codice aeroportuale richiesto, e ripetere l'operazione a intervalli regolari. Questo processo automatizzato gestirà gli errori HTTP generando file di risultati che conterranno, per ogni codice aeroportuale, o lo stato più recente o una descrizione dell'errore.

Se siete nuovi utenti di MapForce, date un'occhiata a questa [panoramica in video](https://youtu.be/a83na6G9FjI) per una introduzione alle sue funzionalità di conversione e integrazione dati, che supportano qualsiasi formato. Potete provare MapForce, MapForce Server e FlowForce Server grazie a una [prova gratuita di 30 giorni](https://www.altova.com/it/download).
