10 bästa API-hanteringsverktyg

Den moderna affärsvärlden är mjukvarudriven och API-driven. Alla applikationer, oavsett om de är offentliga eller privata, behöver kraftfulla och praktiska API: er för att vara riktigt användbara. Att bygga och underhålla API är hårt arbete, så det är inte konstigt att hela klasser av programvara har dykt upp kring API-hantering.

De flesta API-hanteringsprodukter ger en vanlig koppling av funktioner: routing och proxying, transformation av data och URL: er, instrumentpaneler och analyser, policyer och begränsningar och utvecklarverktyg som dokumentationsgeneratorer. Här ser vi på 10 populära API-hanteringsverktyg - öppen källkodsprojekt, kommersiella produkter, molntjänster och blandningar av samma - som erbjuder allt från en fullservicepaket för API: er till fokuserade verktyg för specifika scenarier.

3skala

Ursprungligen en produkt med slutna källor, 3scale förvärvades av Red Hat och öppnades efter ungefär två års arbete. Open source-projektet kan användas fritt under Apache-licensen, medan Red Hat erbjuder en kommersiellt stödd SaaS-implementering.

3scales funktioner överensstämmer med de andra erbjudandena i denna sammanfattning. Du hittar API-version, åtkomstkontroll och hastighetsbegränsning, säkerhetskontroller och analys. 3scale erbjuder också utvecklarvänliga funktioner som en utvecklarportal och CMS för att skapa dokumentation för sina API: er. 3scale erbjuder också integrerade verktyg för att tjäna pengar på API: er, såsom fakturering och integration med betaltjänster.

Om du tänker installera 3scale själv för produktion behöver du Oracle Database och OpenShift. Med tanke på att även en minimal 3-skalad installation för testning kräver Minishift, ett OpenShift-kluster med en nod, kan du tjäna bäst med den gratis 90-dagars testversionen av 3scale om du vill komma igång så snabbt som möjligt.

Pro-versionen börjar på $ 750 per månad för 5 000 utvecklarkonton, 500 000 API-samtal dagligen och upp till tre API: er. Enterprise-versionen (pris tillgängligt på begäran) tar bort de flesta av dessa begränsningar.

Ambassadör

Ambassador är ett open source API-hanteringssystem byggt för att fungera med Kubernetes. Ambassadören implementeras ovanpå Envoy-proxyen, som hanterar nätverksabstraktion för mikrotjänster, så det mesta av tunga lyft görs av Envoy och Kubernetes.

Ambassadors funktionsuppsättning är i linje med de flesta andra API-hanteringsverktyg där ute: URL-omskrivning och routningsbegäran, filtrering, autentisering och åtkomstkontroll, hastighetsbegränsning och timeouts, och integration med loggning, felsökning och synlighetsverktyg.

Men majoriteten av Ambassadors funktioner kretsar kring runtime management och integration med Kubernetes och andra Kubernetes-verktyg (t.ex. Prometheus). Ambassador lämnar design och deklarativ konfiguration av API: er helt till användaren. Funktioner som API-versionering stöds inte inbyggt; du måste hantera sådana saker på egen hand. Det gör Ambassador bäst lämpad för att arbeta med API: er som en del av en Kubernetes-distribution, snarare än som en allmän API-hanteringslösning.

Apiman

Apiman - tidigare "JBoss Apiman" - är ett Red Hat-projekt med öppen källkod byggt i Java. Även om det fortfarande underhålls av Red Hat, verkar det mesta av Red Hats aktiva utveckling inom API-hantering ha flyttat till sin 3Scale-produkt.

Apiman koncentrerar sig på grunderna - publicerar och hanterar API: er, ger rollbaserad åtkomst till dessa funktioner, ställer in policyer kring API-användning, samlar in runtime och faktureringsstatistik och skapar organisationsstrukturer uppifrån och ned för alla dessa element.

Apiman kan ställa in policyer för API: er kring säkerhet, resurser (t.ex. hastighetsbegränsning), transformationer av data, cachning och loggning. Policy konfigureras via JSON så att de kan läsas och redigeras av både människor och maskiner. Säkerhetspolicyer kan tillämpas av användaridentitet eller roll och API: er kan kontrolleras löst eller tätt. Du kan publicera API: er med revisions-ID: t i URL: n och inget kontrakt är kopplat till deras användning; eller så kan du kräva en API-nyckel och noggrant hantera hur de versioneras.

Det mesta som ligger utanför grunderna är ditt ansvar. Till exempel, medan ett antal plugin-program för Apiman är tillgängliga, motsvarar de i allmänhet små tillägg till Apiman-funktionalitet, tillhandahållna av kärnprojektunderhållare.

DreamFactory

DreamFactory API-hanteringsplattform är byggd med Laravel-ramverket i PHP. DreamFactory är tillgängligt som ett gratis open source-erbjudande eller med varierande nivåer av kommersiellt stöd (prissättning avslöjas inte). Det är ett naturligt val för utvecklare som redan investerat i PHP och som vill gräva i implementeringen av öppen källkod. DreamFactory erbjuder också integrering av skriptserver på serversidan med Node.js och Python.

DreamFactory's "Datamesh" -funktion, tillgänglig direkt i alla inkarnationer, låter dig kombinera resultat från flera, heterogena databassamtal - inklusive till olika databasprodukter - och returnera resultaten som ett enda API-samtal. På samma sätt kan tabelluppdateringar över flera databaser kombineras till ett enda API-samtal.

DreamFactory-dokumentationen saknar en enda, kanonisk, sökbar lista över alla tillgängliga tjänster. Informationen är ordnad efter kategori, så du måste utföra manuell borrning för att ta reda på vad som finns. På uppsidan innehåller dokumenten många instruktionsvideor för specifika användningsfall, som att skapa en enkel applikation eller ansluta till olika datakällor.

Kong

Kong är ett av de mest kända API-hanteringsverktygen, ursprungligen skapade av Mashape (döpt om till Kong) för att driva sin egen API-marknadsplatsprodukt. Kong finns i en öppen källkodsutgåva eller i ett kommersiellt erbjudande av företagsklass (prissättning ej offentliggjord) med ytterligare funktioner för hantering, övervakning och utvecklare. Enterprise-utgåvan kan köras lokalt eller i en molntjänst som du väljer. Dokumentationen för både öppen källkod och företagsprodukter är riklig och detaljerad.

Kong tillhandahåller en Ingress-kontroller för Kubernetes-integration och ett servicenät som gör att Kongs funktionalitet kan "injiceras" i en befintlig distribution av tjänster. Företagsutgåvan erbjuder en utvecklarportal som syftar till att underlätta skapandet av nya API: er och göra nya utvecklare bekanta med din API-kodbas.

Kong använder normalt en databas, men kan också köras i ett databaslöst läge med en JSON / YAML-konfigurationsfil och lagring i minnet. Detta är bäst om du bara kör en enda, minimal nod men vill ha maximal prestanda.

KrakenD

KrakenD, skrivet i Go, levererar bara det väsentliga men visar hög prestanda som en nyckelfunktion. KrakenD levereras som en enda, fristående binär, vilket är fallet med de flesta applikationer som är inbyggda i Go. Alternativt kan den kompileras från källan eller användas som ett Go-bibliotek om du vill bygga din egen applikation runt den.

KrakenD använder en konfigurationsfil som kan rullas för hand eller maskingenereras. Hastighetsbegränsning, manipulation av svar, vidarebefordran, slutpunktsfelsökning, protokollsäkerhetsåtgärder (t.ex. skydd mot clickjacking), proxying, stubbing och caching i minnessvaret stöds alla ur lådan.

KrakenD-instanser kan grupperas för hög tillgänglighet. Ingen ytterligare programvara behövs för att göra detta, bara KrakenD själv. Du kan också distribuera KrakenD över ett Kubernetes-kluster utan mycket extra arbete. Ett sortiment av tredje parts mellanprogram kan erhållas från KrakenD GitHub-förvaret.

Företagssupport, inklusive rådgivning och utbildning, är tillgängligt från KrakenDs skapare, även om prissättning inte avslöjas.

MuleSoft Anypoint-plattform

MuleSofts Anypoint-plattform är tänkt att vara ett komplettist-erbjudande - det täcker API-design, konstruktion, hosting, hantering, integration och utvecklarstöd i en enda kommersiell produkt. 

Med Anypoint kan du utveckla API: er från grunden, eller återanvända befintliga kontakter och integrationer som skapats av andra MuleSoft-kunder och delas i Anypoint Exchange. Anslutningar finns för generiska protokoll (filåtkomst, HTTP, e-post), språkmoduler för datatransformationer (Java, JavaScript), molntjänster (Amazon AWS), kommersiella applikationer (Salesforce, SAP) och applikationer med öppen källkod (MongoDB).

För dem som skapar API: er som kommer att konsumeras av partners eller allmänheten, tillhandahåller Anypoint API Community Manager för att skapa webbgränssnitt - vad MuleSoft kallar "portaler" - för dessa API: er. Interaktiv dokumentation, personalisering (inklusive funktioner som att skräddarsy utdata baserat på användarens geolokalisering) och API-användningsanalys ingår.

Anypoint erbjuder tre prissättningsplaner, guld, platina och titan, som varierar beroende på kundsupport och företagsfunktioner. Alla tre planerna inkluderar obegränsade API: er och kostar extra för "premium" -kontakter (t.ex. IBM AS / 400-stordatoranslutningen).

Netflix Zuul

Zuul, ett öppen källkodsprojekt skapat av ingenjörerna på Netflix, byggdes internt för att hantera dirigeringsförfrågningar till Netflix videostreamingtjänster. Det finns inget kommersiellt Zuul-erbjudande - åtminstone inte från Netflix - så du måste snurra Zuul upp och hantera det helt på egen hand.

Zuul är skrivet på Java och det använder vanliga Java-verktyg - Gradle, Ivy, Maven - för att komma igång. Zuul erbjuder en relativt minimal funktionssats jämfört med andra API-hanteringssystem, med fokus på att filtrera och skicka inkommande förfrågningar över tjänster. Zuul tillhandahåller funktioner för tjänsteupptäckt, belastningsbalansering, anslutningspool och felsökningsfunktioner (”begäran om pass”), men saknar mer sofistikerade funktioner som utvecklare ombord och automatisk dokumentation.

Zuul är ett aktivt projekt med många nya funktioner planerade för framtida versioner. Det kommande "brownout-filtret", till exempel, inaktiverar vissa funktioner för att frigöra CPU under perioder med hög aktivitet.

Tyk

Tyk innehåller mycket som standard: API-gateway, analysverktyg, en utvecklingsportal och en hanteringspanel. Det innehåller också funktionalitet för att håna API: er innan de formellt släpps, inbyggd caching för begäran (som kan inkluderas direkt i en API-definition) och svarmallar för olika HTTP-felkoder.

Tyk finns i fyra utgåvor, var och en för olika användningsfall. Community-utgåvan, Tyk's open source release, innehåller endast gateway, som hanterar proxying, åtkomstkontroll, transformationer och loggning. Du kan rulla din egen funktion direkt eller genom att trycka på Tyks plug-in-ekosystem med stöd för flera språk.

Den lokala utgåvan låter dig använda den kompletta kommersiella produkten bakom din brandvägg. Single gateway-licenser - i huvudsak utvecklarversioner - är tillgängliga gratis, utan API-samtalsgränser, även om API: erna inte kan användas i kommersiella inställningar. Licenser för kommersiellt bruk börjar vid $ 3000 per år.

Cloud- och multi-cloud-utgåvorna, tillgängliga för en mängd populära molntjänster, erbjuder Tyk som värdtjänst. En grundläggande version med en enda moln som stöder 1000 API-samtal per dag är gratis (förutom vad din molntjänstleverantör tar ut); pro-planer börjar på $ 450 per månad.

WSO2 API Manager

WSO2 API Manager är i grunden en öppen källkodsprodukt, byggd med Java. Produkten är tillgänglig för lokal eller molnhostad distribution med kommersiellt stöd eller som en molnhanterad tjänst.

De olika distributionsalternativen möjliggör ett antal olika hanteringsscenarier. Till exempel kan en lokal WSO2-distribution få sina policyer och andra konfigurationer att genomföras med hjälp av en molnvärd utvecklarportal, med ändringarna antingen synkroniserade mellan moln och lokaler eller skjutas regelbundet från molnet (för miljöer som behöver nedstängt).

WSO2 har cirka 200 kontakter som kan användas för att koppla ihop externa tjänster. Många är vanliga utvecklarklammer: Slack, Splunk, Kafka, Redis, Amazon S3 och så vidare.

En annan WSO2-funktion, "API-mikrogateway", säkerställer att vissa typer av samtal får ytterligare säkerhet och lägre latens. Till exempel kan samtal som används för att hantera gatewayen eller samtal som dirigeras mellan mikrotjänster hanteras på detta sätt.

Ett nytt tillägg till WSO2 lägger till integration med Istio-servicenätet för Kubernetes. Istio hanterar inte de API: er som exponeras av mikrotjänsterna som hanteras, så WSO2 integreras med Envoy-proxyn som används av Istio för att göra det.

Prissättningen för WSO2s kommersiella erbjudanden börjar med en gratis testperiod på två veckor med upp till en miljon API-samtal, fortsätter till $ 550 per månad för 20 miljoner samtal och skalas upp därifrån till skräddarsydda konfigurationer.