SDK (Software Development Kit)

Un SDK è una libreria di codice predefinita che semplifica l'integrazione con l'API di SendSeven nel tuo linguaggio di programmazione preferito. Invece di scrivere richieste HTTP grezze, utilizzi funzioni type-safe con gestione automatica degli errori.

Che cos'è un SDK?

Un Software Development Kit (SDK) è una raccolta di strumenti, librerie ed esempi di codice che facilita agli sviluppatori il lavoro con una API. Invece di costruire manualmente le richieste HTTP, analizzare il JSON e intercettare gli errori, ti basta richiamare funzioni come sendMessage() o getContacts(): l'SDK si occupa del resto.

Gli SDK offrono diversi vantaggi rispetto alle chiamate API grezze: type safety (il tuo IDE ti mostra i campi disponibili e individua gli errori prima del deployment), gestione automatica degli errori (logica di retry, gestione dei timeout), astrazione (flussi di lavoro complessi come OAuth o paginazione vengono semplificati) e best practice (l'SDK implementa già l'utilizzo consigliato dell'API).

SDK vs. REST API diretta

L'API di SendSeven è una REST API: in teoria potresti usarla con qualsiasi client HTTP (maggiori dettagli nella guida all'autenticazione), come curl, Postman, fetch() o axios. Un SDK è un sottile strato sopra di essa, che offre funzionalità di comodità specifiche per ogni linguaggio:

Senza SDK (chiamata API grezza in JavaScript):

const response = await fetch('https://api.sendseven.com/api/v1/messages', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer LA_TUA_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    to: '+393331234567',
    channel: 'whatsapp',
    content: { text: 'Ciao!' }
  })
});
const data = await response.json();
if (!response.ok) throw new Error(data.message);

Con SDK (Node.js):

const SendSeven = require('@sendseven/sdk');
const client = new SendSeven({ apiKey: 'LA_TUA_API_KEY' });

await client.messages.send({
  to: '+393331234567',
  channel: 'whatsapp',
  text: 'Ciao!'
});

Il codice con SDK è più breve, più leggibile e più resistente agli errori. I tipi prevengono gli errori di battitura (ad esempio chennel invece di channel) e l'SDK solleva automaticamente eccezioni comprensibili in caso di errore.

Linguaggi supportati da SendSeven

SendSeven offre SDK ufficiali per i linguaggi di programmazione più diffusi:

  • Node.js/TypeScript: completamente type-safe con supporto IntelliSense
  • Python: con type hints e supporto async/await
  • PHP: compatibile PSR-4, installazione tramite Composer

Tutti gli SDK sono open source (licenza MIT) e vengono sviluppati in parallelo all'API. Li trovi su GitHub e nei rispettivi registri di pacchetti (npm, PyPI, Packagist). La documentazione include guide quick-start, esempi di codice e riferimenti API.

Utilizzi un altro linguaggio (Go, Ruby, Java, .NET)? La REST API è indipendente dal linguaggio: puoi usarla con qualsiasi client HTTP. In alcuni casi esistono già SDK della community, oppure puoi sviluppare un wrapper personalizzato (le pull request su GitHub sono benvenute!).

Per iniziare con gli SDK di SendSeven

Node.js:

npm install @sendseven/sdk
const SendSeven = require('@sendseven/sdk');
const client = new SendSeven({ apiKey: process.env.SENDSEVEN_API_KEY });

Python:

pip install sendseven
from sendseven import SendSeven
client = SendSeven(api_key=os.getenv('SENDSEVEN_API_KEY'))

PHP:

composer require sendseven/sdk
use SendSeven\Client;
$client = new Client(['api_key' => getenv('SENDSEVEN_API_KEY')]);

Tutti gli SDK supportano le variabili d'ambiente per le API key (mai inserite direttamente nel codice!), dispongono di logging integrato (per il debug) e offrono helper per i webhook (per validare le firme dei webhook in entrata). La documentazione completa, con esempi per tutte le funzionalità, è disponibile su /it/documentazione.