Le API collegano le applicazioni attraverso protocolli e architetture chiari. Un'architettura API è un framework di regole per la creazione di interfacce software. Le regole determinano come fornire la funzionalità del server agli utenti. Il tipo di architettura determina le regole e le strutture che governano l'API.
Esistono molti tipi diversi di architettura API, da REST a RPC. Conoscere la loro struttura e composizione ti aiuterà a selezionarne uno per la tua applicazione.
1. RIPOSO
API REST sono moderni e sono l'architettura API più popolare utilizzata dagli sviluppatori. RIPOSO (representational state transfer) è un'architettura utilizzata per progettare applicazioni client-server. Non è un protocollo o uno standard, quindi puoi implementarlo in vari modi. Questo aspetto aumenta la tua flessibilità come sviluppatore.
REST consente l'accesso ai dati richiesti memorizzati in un database. Puoi eseguire le funzioni CRUD principali con un'API REST. Quando i client richiedono contenuti tramite un'API RESTful, devono utilizzare le intestazioni e i parametri corretti. Le intestazioni contengono metadati utili per identificare una risorsa, come i codici di stato e l'autorizzazione.
Le informazioni trasferite tramite HTTP possono essere in formato JSON, HTML, XML o testo normale. JSON è il formato di file più comunemente utilizzato per le API REST. JSON è indipendente dalla lingua e leggibile dagli esseri umani.
2. SAPONE
Semplice protocollo di accesso agli oggetti (SOAP) è un protocollo API ufficiale. Il World Wide Web Consortium (W3C) mantiene il protocollo SOAP, che è una delle prime architetture API. Il suo design facilita la comunicazione tra applicazioni realizzate con linguaggi e piattaforme differenti.
Il formato SOAP descrive un'API utilizzando il linguaggio di descrizione del servizio Web (WSDL). È scritto nel linguaggio di markup esteso (XML). Il formato impone standard di conformità integrati che aumentano la sicurezza, la coerenza, l'isolamento e la durabilità. Queste proprietà garantiscono transazioni di database affidabili, rendendo SOAP migliore per lo sviluppo aziendale.
Quando un utente richiede contenuto tramite un'API SOAP, passa attraverso i protocolli di livello standard. La risposta è in formato XML, che gli esseri umani e le macchine possono leggere. Come le API REST, le API SOAP non memorizzano nella cache/memorizzano le informazioni. Se hai bisogno dei dati in un secondo momento, devi fare un'altra richiesta.
SOAP supporta gli scambi di dati sia stateful che stateless.
3. GraphQL
GraphQL è un linguaggio di query per un'API. È un runtime lato server che esegue query basate su un set di dati definito. GraphQL ha casi d'uso specifici. La sua architettura ti consente di dichiarare le informazioni specifiche di cui hai bisogno.
A differenza dell'architettura REST, dove HTTP gestisce le richieste e le risposte del client, GraphQL richiede i dati con le query. Un servizio GraphQL definisce i tipi e i campi di tali tipi, quindi fornisce funzioni per ogni campo e tipo.
Il servizio riceve Query GraphQL convalidare ed eseguire. Innanzitutto, controlla una query per assicurarsi che faccia riferimento ai tipi e ai campi definiti. Quindi, esegue le funzioni associate per produrre il risultato desiderato.
GraphQL è ottimo per determinati casi d'uso come il recupero di dati da più fonti. Puoi anche controllare il recupero dei dati e regolare la larghezza di banda per i dispositivi più piccoli.
4. Apache Kafka
Apache Kafka è una piattaforma distribuita che supporta lo streaming di eventi. Lo streaming di eventi è il processo di acquisizione dei dati in tempo reale dalle fonti. Le fonti possono essere database, server o applicazioni software. Il sistema Kafka è composto da server e client. La comunicazione avviene attraverso un protocollo di rete TCP.
È possibile distribuire il sistema su hardware, macchine virtuali e container. Puoi farlo on-premise e in ambienti cloud. Il sistema Apache Kafka acquisisce dati, li elabora e reagisce ad essi in tempo reale. Può anche instradare i dati verso una destinazione preferita in tempo reale. Kafka acquisisce e archivia i dati nel sistema che è possibile recuperare in seguito per l'utilizzo.
Kafka supporta un flusso continuo e l'integrazione dei dati. Ciò garantisce che le informazioni siano nel posto giusto, al momento giusto. Lo streaming di eventi può essere applicato a molti casi d'uso che richiedono flussi di dati in tempo reale. Questi includono istituzioni finanziarie, assistenza sanitaria, governo, industria dei trasporti e società di software per computer.
5. AsyncAPI
AsyncAPI è un'iniziativa open source che aiuta a creare e mantenere architetture basate su eventi. Le sue specifiche hanno molte cose in comune con le specifiche OpenAPI. AsyncAPI è essenzialmente un adattamento e un miglioramento delle specifiche OpenAPI, con alcune differenze.
L'architettura AsyncAPI riunisce una combinazione di API REST e API basate su eventi. I suoi schemi per la gestione delle richieste e delle risposte sono simile a quello delle API degli eventi. AsyncAPI fornisce le specifiche per descrivere e documentare le applicazioni asincrone in un formato leggibile dalla macchina formato. Fornisce inoltre strumenti come generatori di codice per semplificare l'implementazione da parte degli utenti.
AsyncAPI migliora lo stato attuale dell'architettura Event-Driven (EDA). L'obiettivo è semplificare il lavoro con gli EDA come avviene con le API REST. L'iniziativa AsyncAPI fornisce documentazione e codice che supportano la gestione degli eventi. La maggior parte dei processi utilizzati nelle API REST si applica alle API asincrone/guidate da eventi.
L'uso della specifica AsyncAPI per documentare i sistemi basati su eventi è fondamentale. Gestisce e mantiene la coerenza e l'efficienza tra i team che lavorano su progetti guidati dagli eventi.
6. Chiamata di procedura remota (RPC)
RPC è un protocollo di comunicazione software che consente la comunicazione tra diversi programmi su una rete. Ad esempio, un programma può richiedere informazioni da un altro computer sulla rete. Non deve aderire ai protocolli di rete. È possibile utilizzare RPC per chiamare processi su sistemi remoti proprio come sul sistema locale.
RPC opera sul modello client-server. Il programma client richiede e il programma server risponde con un servizio. Le RPC operano in sincronia. Quando un programma invia una richiesta, rimane sospeso finché non riceve una risposta dal server.
Gli RPC sono i migliori per i sistemi distribuiti. Sono i migliori per i sistemi basati su comandi e hanno payload leggeri che aumentano le prestazioni.
Come scegliere la giusta architettura API
La giusta architettura API dipende dal tuo caso d'uso. L'architettura determina la metodologia per sviluppare l'API e come verrà eseguita. La progettazione architettonica dell'API definisce i suoi componenti e le sue interazioni.
Prendi decisioni sull'architettura prima di progettare e sviluppare l'API. Determina i requisiti tecnici dell'API, il livello, la gestione del ciclo di vita e la sicurezza. I progetti di architettura API contengono livelli strutturali. I livelli guidano lo sviluppo e garantiscono che l'API creata serva allo scopo previsto.