10 migliori strumenti di gestione delle API

Il mondo degli affari moderno è basato su software e su API. Qualsiasi applicazione, pubblica o privata, necessita di API potenti e convenienti per essere veramente utile. Costruire e mantenere le API è un lavoro duro, quindi non c'è da meravigliarsi che intere classi di software siano sorte attorno alla gestione delle API.

La maggior parte dei prodotti di gestione delle API fornisce una serie di funzionalità comuni: instradamento e proxy, trasformazione di dati e URL, dashboard e analisi, criteri e restrizioni e strumenti per sviluppatori come i generatori di documentazione. Qui esamineremo 10 popolari strumenti di gestione delle API - progetti open source, prodotti commerciali, servizi cloud e combinazioni degli stessi - che offrono di tutto, da una suite a servizio completo per le API a strumenti mirati per scenari specifici.

3scale

Originariamente un prodotto closed-source, 3scale è stato acquisito da Red Hat e reso open source dopo circa due anni di lavoro. Il progetto open source può essere utilizzato liberamente con la licenza Apache, mentre Red Hat offre un'implementazione SaaS supportata commercialmente.

Le funzionalità di 3scale sono in linea con le altre offerte in questa carrellata. Troverai controllo delle versioni delle API, controllo degli accessi e limitazione della velocità, controlli di sicurezza e analisi. 3scale offre anche funzionalità di facile utilizzo come un portale per sviluppatori e CMS per la creazione di documentazione per le proprie API. 3scale offre anche strumenti nativi per la monetizzazione delle API, come la fatturazione e l'integrazione con i servizi di pagamento.

Se intendi installare 3scale da solo per la produzione, avrai bisogno di Oracle Database e OpenShift. Dato che anche un'installazione minima di 3 scale per i test richiede Minishift, un cluster OpenShift a nodo singolo, potresti essere servito al meglio utilizzando la versione di prova gratuita di 90 giorni di 3scale se vuoi iniziare il più rapidamente possibile.

La versione Pro parte da $ 750 al mese per 5.000 account sviluppatore, 500.000 chiamate API al giorno e fino a tre API. La versione Enterprise (prezzo disponibile su richiesta) rimuove la maggior parte di queste restrizioni.

Ambasciatore

Ambassador è un sistema di gestione delle API open source creato per funzionare con Kubernetes. Ambassador è implementato sopra il proxy Envoy, che gestisce l'astrazione di rete per i microservizi, quindi la maggior parte del lavoro pesante viene svolto da Envoy e Kubernetes.

Il set di funzionalità di Ambassador è in linea con la maggior parte degli altri strumenti di gestione delle API disponibili: riscrittura degli URL e instradamento delle richieste, filtri, autenticazione e controllo degli accessi, limitazione della frequenza e timeout e integrazione con strumenti di registrazione, risoluzione dei problemi e visibilità.

Tuttavia, la maggior parte delle funzionalità di Ambassador ruotano attorno alla gestione del runtime e all'integrazione con Kubernetes e altri strumenti Kubernetes (ad esempio, Prometheus). Ambassador lascia la progettazione e la configurazione dichiarativa delle API interamente all'utente. Funzionalità come il controllo delle versioni delle API non sono supportate in modo nativo; devi gestire queste cose da solo. Ciò rende Ambassador più adatto per lavorare con le API come parte di una distribuzione Kubernetes, piuttosto che come una soluzione di gestione API generale.

Apiman

Apiman, precedentemente "JBoss Apiman", è un progetto open source di Red Hat costruito in Java. Sebbene sia ancora mantenuto da Red Hat, la maggior parte dello sviluppo attivo di Red Hat nella gestione delle API sembra essere passato al suo prodotto 3Scale.

Apiman si concentra sulle nozioni di base: pubblicazione e gestione delle API, fornitura di accesso basato sui ruoli a tali funzioni, impostazione delle politiche sull'uso delle API, raccolta delle metriche di runtime e fatturazione e creazione di strutture organizzative dall'alto verso il basso per tutti questi elementi.

Apiman può impostare criteri per le API in materia di sicurezza, risorse (ad esempio, limitazione della velocità), trasformazioni di dati, memorizzazione nella cache e registrazione. I criteri vengono configurati tramite JSON, quindi possono essere letti e modificati sia da persone che da macchine. I criteri di sicurezza possono essere applicati in base all'identità o al ruolo dell'utente e le API possono essere controllate in modo approssimativo o rigoroso. Puoi pubblicare API con l'ID di revisione nell'URL e nessun contratto associato al loro utilizzo; oppure puoi richiedere una chiave API e gestire attentamente il modo in cui vengono controllati le versioni.

Quasi tutto ciò che va oltre le basi è tua responsabilità. Ad esempio, sebbene siano disponibili numerosi plug-in per Apiman, generalmente si tratta di piccole estensioni delle funzionalità di Apiman, fornite dai responsabili del progetto principale.

DreamFactory

La piattaforma di gestione delle API DreamFactory è costruita con il framework Laravel in PHP. DreamFactory è disponibile come offerta open source gratuita o con diversi livelli di supporto commerciale (prezzi non resi noti). È una scelta naturale per gli sviluppatori che hanno già investito in PHP e che vogliono approfondire l'implementazione open source. DreamFactory offre anche l'integrazione di scripting lato server con Node.js e Python.

La funzione "Datamesh" di DreamFactory, disponibile immediatamente in tutte le sue incarnazioni, consente di combinare i risultati di più chiamate di database eterogenee, inclusi prodotti di database diversi, e restituire i risultati come una singola chiamata API. Allo stesso modo, gli aggiornamenti delle tabelle su più database possono essere combinati in una singola chiamata API.

La documentazione di DreamFactory manca di un elenco unico, canonico e ricercabile di tutti i servizi disponibili. Le informazioni sono organizzate per categoria, quindi è necessario eseguire alcuni drill-down manuali per scoprire cosa è disponibile. Il lato positivo è che i documenti includono molti video dimostrativi per casi d'uso specifici, come l'impostazione di una semplice applicazione o il collegamento a varie origini dati.

Kong

Kong è uno dei più noti strumenti di gestione delle API, originariamente creato da Mashape (ribattezzato Kong) per alimentare il proprio prodotto di mercato API. Kong è disponibile in un'edizione open source o in un'offerta commerciale di livello aziendale (prezzo non divulgato) con funzionalità aggiuntive di gestione, monitoraggio e sviluppo. L'edizione Enterprise può essere eseguita in locale o in un servizio cloud a scelta. La documentazione sia per i prodotti open source che per quelli aziendali è abbondante e dettagliata.

Kong fornisce un controller Ingress per l'integrazione con Kubernetes e una mesh di servizi per consentire di "iniettare" la funzionalità di Kong in una distribuzione esistente di servizi. L'edizione Enterprise offre un portale per sviluppatori volto a facilitare la creazione di nuove API e acquisire familiarità con i nuovi sviluppatori con la tua base di codice API.

Kong normalmente utilizza un database, ma può anche essere eseguito in una modalità senza database, utilizzando un file di configurazione JSON / YAML e l'archiviazione in memoria. Questo è il migliore se stai eseguendo solo un singolo nodo minimo ma desideri le massime prestazioni.

KrakenD

KrakenD, scritto in Go, offre solo l'essenziale, ma promuove alte prestazioni come caratteristica chiave. KrakenD viene fornito come un singolo binario autonomo, come nel caso della maggior parte delle applicazioni incorporate in Go. In alternativa, può essere compilato dal codice sorgente o utilizzato come libreria Go se si desidera creare la propria applicazione attorno ad esso.

KrakenD utilizza un file di configurazione, che può essere eseguito manualmente o generato dalla macchina. Limitazione della velocità, manipolazione delle risposte, inoltro, debug degli endpoint, misure di sicurezza del protocollo (ad es. Protezione contro il clickjacking), proxy, stubbing e memorizzazione nella cache delle risposte in memoria sono tutti supportati immediatamente.

Le istanze KrakenD possono essere raggruppate in cluster per un'elevata disponibilità. Non è necessario alcun software aggiuntivo per farlo, solo lo stesso KrakenD. Puoi anche distribuire KrakenD su un cluster Kubernetes senza molto lavoro aggiuntivo. È possibile ottenere un assortimento di middleware di terze parti dal repository GitHub KrakenD.

Il supporto aziendale, inclusa la consulenza e la formazione, è disponibile dai creatori di KrakenD, sebbene i prezzi non siano resi noti.

Piattaforma MuleSoft Anypoint

Anypoint Platform di MuleSoft vuole essere un'offerta completa: copre la progettazione, la costruzione, l'hosting, la gestione, l'integrazione e il supporto degli sviluppatori API in un unico prodotto commerciale. 

Con Anypoint, puoi sviluppare API da zero o riutilizzare i connettori e le integrazioni esistenti creati da altri clienti MuleSoft e condivisi in Anypoint Exchange. Sono disponibili connettori per protocolli generici (accesso ai file, HTTP, e-mail), moduli di linguaggio per trasformazioni di dati (Java, JavaScript), servizi cloud (Amazon AWS), applicazioni commerciali (Salesforce, SAP) e applicazioni open source (MongoDB).

Per coloro che creano API che verranno utilizzate dai partner o dal pubblico, Anypoint fornisce API Community Manager per creare interfacce utente Web, ciò che MuleSoft chiama "portali", per tali API. Documentazione interattiva, personalizzazione (incluse funzionalità come la personalizzazione dell'output in base alla geolocalizzazione dell'utente) e analisi dell'utilizzo delle API sono tutte incluse.

Anypoint offre tre piani tariffari, Gold, Platinum e Titanium, che variano in base al livello di assistenza clienti e alle funzionalità aziendali. Tutti e tre i piani includono API illimitate e addebiti extra per connettori "premium" (ad esempio, il connettore mainframe IBM AS / 400).

Netflix Zuul

Zuul, un progetto open source creato dagli ingegneri di Netflix, è stato costruito internamente per gestire le richieste di instradamento ai servizi di streaming video di Netflix. Non esiste un'offerta commerciale di Zuul, almeno non da Netflix, quindi dovrai avviare Zuul e gestirlo interamente da solo.

Zuul è scritto in Java e utilizza strumenti Java comuni - Gradle, Ivy, Maven - per essere subito operativi. Zuul offre un set di funzionalità relativamente minimo rispetto ad altri sistemi di gestione API, concentrandosi sul filtraggio e l'invio delle richieste in entrata tra i servizi. Zuul fornisce funzionalità di rilevamento dei servizi, bilanciamento del carico, pool di connessioni e debug (il "passaporto delle richieste"), ma manca di funzioni più sofisticate come l'onboarding degli sviluppatori e la documentazione automatica.

Zuul è un progetto attivo con molte nuove funzionalità previste per le versioni future. Il prossimo "filtro brownout", ad esempio, disabiliterà alcune funzionalità per liberare la CPU durante i periodi di alta attività.

Tyk

Tyk include molto per impostazione predefinita: il gateway API, strumenti di analisi, un portale di sviluppo e un dashboard di gestione. Include anche funzionalità per deridere le API prima che vengano rilasciate formalmente, memorizzazione nella cache delle richieste incorporata (che può essere inclusa direttamente in una definizione API) e modelli di risposta per diversi codici di errore HTTP.

Tyk è disponibile in quattro edizioni, ciascuna per diversi casi d'uso. La community edition, la versione open source di Tyk, include solo il gateway, che gestisce il proxy, il controllo degli accessi, le trasformazioni e la registrazione. Puoi implementare la tua funzionalità direttamente o attingendo all'ecosistema di plug-in di Tyk, con supporto per più lingue.

L'edizione locale consente di utilizzare il prodotto commerciale completo dietro il firewall. Le licenze a gateway singolo, essenzialmente le edizioni per sviluppatori, sono disponibili gratuitamente, senza limiti di chiamata API, sebbene le API non possano essere utilizzate in contesti commerciali. Le licenze per uso commerciale partono da $ 3000 all'anno.

Le edizioni cloud e multi-cloud, disponibili per una varietà di servizi cloud popolari, forniscono Tyk come servizio in hosting. Una versione di base a cloud singolo che supporta 1.000 chiamate API al giorno è disponibile gratuitamente (a parte i costi addebitati dal provider di servizi cloud); i piani a livello professionale partono da $ 450 al mese.

Gestore API WSO2

WSO2 API Manager è fondamentalmente un prodotto open source, costruito con Java. Il prodotto è disponibile per la distribuzione in sede o ospitata nel cloud con supporto commerciale o come servizio gestito dal cloud.

Le varie opzioni di distribuzione consentono una serie di diversi scenari di gestione. Ad esempio, una distribuzione WSO2 in locale può avere le sue politiche e altre configurazioni applicate tramite un portale per sviluppatori ospitato nel cloud, con le modifiche sincronizzate tra cloud e locali o inviate periodicamente dal cloud (per ambienti che devono essere chiuso).

WSO2 ha circa 200 connettori che possono essere utilizzati per collegare insieme servizi esterni. Molti sono elementi comuni per gli sviluppatori: Slack, Splunk, Kafka, Redis, Amazon S3 e così via.

Un'altra funzione WSO2, il "microgateway API", garantisce che alcuni tipi di chiamate ricevano maggiore sicurezza e minore latenza. Ad esempio, le chiamate utilizzate per gestire il gateway o le chiamate instradate tra i microservizi possono essere gestite in questo modo.

Un nuovo componente aggiuntivo per WSO2 aggiunge l'integrazione con la rete mesh di servizi Istio per Kubernetes. Istio non gestisce le API esposte dai microservizi che gestisce, quindi WSO2 si integra con il proxy Envoy utilizzato da Istio per farlo.

I prezzi per le offerte commerciali di WSO2 iniziano con una prova gratuita di due settimane con un massimo di un milione di chiamate API, continuano a $ 550 al mese per 20 milioni di chiamate e si espandono da lì a configurazioni su misura.