Determinare se una targa è coperta da assicurazione
Vediamo ora un esempio di codice in TypeScript che mostra come interrogare l'API per determinare se una targa è coperta da assicurazione o meno. Questo esempio include la gestione degli errori e l'uso di variabili d'ambiente per la chiave API.
Prima di utilizzare la chiave API, ti consigliamo di memorizzarla in un file .env, per evitare di esporla nel codice sorgente. Se non hai ancora una chiave API, puoi crearne una in Profilo › Accesso API.
INFOTARGA_API_KEY={YOUR_API_KEY}Puoi utilizzare qualsiasi libreria per le richieste HTTP. In questo esempio utilizziamo fetch, che è disponibile sia in Node.js che nei browser
moderni.
/** * Funzione per ottenere lo stato assicurativo di una targa * @param plate La targa da controllare * @return true se la targa è coperta da assicurazione, false se non lo è, null in caso di errore */export async function getPlateInsuranceStatus(plate: string) { try { if (!process.env.INFOTARGA_API_KEY) { throw new Error('API key is not set in environment variables') }
const endpoint = `https://api.infotarga.com/v2/query/${plate}` const query = await fetch(endpoint, { method: 'POST', headers: { 'Content-Type': 'application/json', 'x-api-key': process.env.INFOTARGA_API_KEY, }, body: JSON.stringify({ type: 'car', insurance: true, }), })
if (!query.ok) { // Se incontriamo un errore in questa fase, // significa che c'è un problema di connessione con l'API throw new Error('Network response was not ok') }
const response = await query.json() if (!response.success) { // Se l'API restituisce un errore, gestiamolo qui // Ad esempio, potremmo voler controllare il codice di errore // e fornire un messaggio più dettagliato throw new Error(data.message || `API returned an error for plate ${plate}`) } if (!response.data.insurance) { // Quando non è possibile recuperare i dati assicurativi, // nonostante la richiesta sia andata a buon fine: // response.data.insurance === null throw new Error(`Insurance data not available for plate ${plate}`) }
// Se tutto va bene, possiamo restituire lo stato assicurativo return response.data.insurance.compliant } catch (error) { console.error(`Error fetching data for plate ${plate}`, error) return null }}Possiamo ora utilizzare questa funzione nel nostro codice principale per verificare lo stato assicurativo di una targa in modo dinamico, mostrando un messaggio diverso a seconda dello stato.
import { getPlateInsuranceStatus } from './insurance-status'
export async function main() { const plate = 'VE160LO' const insuranceStatus = await getPlateInsuranceStatus(plate) if (insuranceStatus) { console.log(`La targa "${plate}" è coperta da assicurazione.`) } else if (insuranceStatus === false) { console.log(`La targa "${plate}" non è attualmente coperta da assicurazione.`) } else if (insuranceStatus === null) { console.log(`Non è stato possibile recuperare lo stato assicurativo per la targa "${plate}".`) }}main()Per scoprire altre funzionalità dell'API consulta la documentazione completa, o visita il playground per testare le chiamate API in modo interattivo.