10 najlepszych narzędzi do zarządzania API

Współczesny świat biznesu jest oparty na oprogramowaniu i API. Każda aplikacja, zarówno publiczna, jak i prywatna, potrzebuje zaawansowanych i wygodnych interfejsów API, aby była naprawdę użyteczna. Tworzenie i utrzymywanie API to ciężka praca, nic więc dziwnego, że wokół zarządzania API wyrosły całe klasy oprogramowania.

Większość produktów do zarządzania interfejsami API zapewnia wspólne połączenie funkcji: routing i proxy, transformację danych i adresów URL, pulpity nawigacyjne i analizy, zasady i ograniczenia oraz narzędzia programistyczne, takie jak generatory dokumentacji. W tym miejscu przyjrzymy się 10 popularnym narzędziom do zarządzania interfejsami API - projektom open source, produktom komercyjnym, usługom w chmurze i ich mieszankom - które oferują wszystko, od pełnego pakietu usług dla interfejsów API po narzędzia ukierunkowane na określone scenariusze.

3scale

Pierwotnie produkt o zamkniętym kodzie źródłowym, 3scale został przejęty przez firmę Red Hat i udostępniony jako open source po około dwóch latach pracy. Projekt open source może być swobodnie używany na licencji Apache, podczas gdy Red Hat oferuje komercyjnie obsługiwaną implementację SaaS.

Funkcje 3scale są zgodne z innymi ofertami w tym podsumowaniu. Znajdziesz tam wersjonowanie API, kontrolę dostępu i ograniczanie szybkości, kontrolę bezpieczeństwa i analitykę. 3scale oferuje również funkcje przyjazne programistom, takie jak portal dla programistów i CMS do tworzenia dokumentacji dla własnych interfejsów API. 3scale oferuje również natywne narzędzia do zarabiania na API, takie jak fakturowanie i integracja z usługami płatniczymi.

Jeśli zamierzasz samodzielnie zainstalować 3scale w środowisku produkcyjnym, będziesz potrzebować Oracle Database i OpenShift. Biorąc pod uwagę, że nawet minimalna instalacja 3scale do testowania wymaga Minishift, klastra OpenShift z jednym węzłem, możesz najlepiej skorzystać z bezpłatnej 90-dniowej wersji próbnej 3scale, jeśli chcesz rozpocząć jak najszybciej.

Wersja Pro zaczyna się od 750 USD miesięcznie za 5000 kont programistów, 500 000 wywołań API dziennie i do trzech interfejsów API. Wersja Enterprise (cena dostępna na żądanie) usuwa większość tych ograniczeń.

Ambasador

Ambassador to system zarządzania API typu open source, stworzony do współpracy z Kubernetes. Ambassador jest implementowany na serwerze proxy Envoy, który obsługuje abstrakcję sieci dla mikrousług, więc większość ciężkiej pracy jest wykonywana przez Envoy i Kubernetes.

Zestaw funkcji Ambassador jest zgodny z większością innych narzędzi do zarządzania API: przepisywanie adresów URL i routing żądań, filtrowanie, uwierzytelnianie i kontrola dostępu, ograniczanie szybkości i limity czasu oraz integracja z narzędziami do rejestrowania, rozwiązywania problemów i widoczności.

Jednak większość funkcji Ambassador dotyczy zarządzania środowiskiem wykonawczym i integracji z Kubernetes i innymi narzędziami Kubernetes (np. Prometheus). Ambasador pozostawia projekt i deklaratywną konfigurację API wyłącznie użytkownikowi. Funkcje takie jak przechowywanie wersji API nie są obsługiwane natywnie; z takimi rzeczami trzeba sobie radzić sam. To sprawia, że ​​Ambassador najlepiej nadaje się do pracy z interfejsami API w ramach wdrożenia Kubernetes, a nie jako ogólne rozwiązanie do zarządzania interfejsami API.

Apiman

Apiman - dawniej „JBoss Apiman” - to projekt Open Source firmy Red Hat zbudowany w języku Java. Chociaż nadal jest utrzymywany przez firmę Red Hat, wydaje się, że większość aktywnego rozwoju firmy Red Hat w zakresie zarządzania interfejsami API została przeniesiona do produktu 3Scale.

Apiman koncentruje się na podstawach - publikowaniu interfejsów API i zarządzaniu nimi, zapewnianiu dostępu opartego na rolach do tych funkcji, ustalaniu zasad dotyczących korzystania z interfejsów API, gromadzeniu wskaźników czasu działania i rozliczeń oraz tworzeniu odgórnych struktur organizacyjnych dla wszystkich tych elementów.

Apiman może ustalać zasady dla API dotyczące bezpieczeństwa, zasobów (np. Ograniczania szybkości), transformacji danych, buforowania i logowania. Zasady są konfigurowane za pomocą formatu JSON, dzięki czemu mogą być odczytywane i edytowane zarówno przez ludzi, jak i maszyny. Zasady bezpieczeństwa mogą być stosowane przez tożsamość lub rolę użytkownika, a interfejsy API mogą być luźno lub ściśle kontrolowane. Możesz publikować interfejsy API z identyfikatorem wersji w adresie URL i bez umowy związanej z ich użyciem; lub możesz wymagać klucza API i ściśle zarządzać sposobem ich wersjonowania.

Za wszystko poza podstawami odpowiadasz Ty. Na przykład, chociaż dostępnych jest wiele wtyczek do Apimana, generalnie sprowadzają się one do niewielkich rozszerzeń funkcjonalności Apiman, dostarczanych przez głównych opiekunów projektów.

DreamFactory

Platforma zarządzania API DreamFactory jest zbudowana na frameworku Laravel w PHP. DreamFactory jest dostępny jako bezpłatna oferta open source lub z różnymi poziomami wsparcia komercyjnego (ceny nie są ujawniane). Jest to naturalny wybór dla programistów, którzy już zainwestowali w PHP i chcą zagłębić się w implementację open source. DreamFactory oferuje również integrację skryptów po stronie serwera z Node.js i Pythonem.

Funkcja „Datamesh” programu DreamFactory, dostępna natychmiast po wyjęciu z pudełka we wszystkich jego wcieleniach, umożliwia łączenie wyników z wielu heterogenicznych wywołań bazy danych - w tym do różnych produktów bazodanowych - i zwracanie wyników w postaci pojedynczego wywołania API. Podobnie aktualizacje tabel w wielu bazach danych można połączyć w jedno wywołanie interfejsu API.

W dokumentacji DreamFactory brakuje jednej kanonicznej listy wszystkich dostępnych usług, którą można przeszukiwać. Informacje są uporządkowane według kategorii, więc musisz ręcznie przejść do szczegółów, aby dowiedzieć się, co jest dostępne. Z drugiej strony, dokumentacja zawiera wiele filmów instruktażowych dotyczących konkretnych przypadków użycia, takich jak konfiguracja prostej aplikacji lub łączenie się z różnymi źródłami danych.

Kong

Kong jest jednym z najbardziej znanych narzędzi do zarządzania API, pierwotnie stworzonym przez Mashape (przemianowanym na Kong) w celu zasilania własnego produktu API marketplace. Kong jest dostępny w wersji open source lub w ofercie komercyjnej dla przedsiębiorstw (ceny nie są ujawniane) z dodatkowymi funkcjami zarządzania, monitorowania i programisty. Wersja Enterprise może działać lokalnie lub w wybranej usłudze w chmurze. Dokumentacja zarówno dla produktów open source, jak i dla przedsiębiorstw jest obszerna i szczegółowa.

Kong zapewnia kontroler Ingress do integracji Kubernetes oraz siatkę usług, aby umożliwić „wstrzyknięcie” funkcjonalności Kong do istniejącego wdrożenia usług. Wersja Enterprise oferuje portal dla programistów, którego celem jest ułatwienie tworzenia nowych interfejsów API i zapoznanie nowych programistów z bazą kodu API.

Kong zwykle korzysta z bazy danych, ale może również działać w trybie bez bazy danych, używając pliku konfiguracyjnego JSON / YAML i magazynu w pamięci. Jest to najlepsze rozwiązanie, jeśli używasz tylko jednego, minimalnego węzła, ale chcesz uzyskać maksymalną wydajność.

KrakenD

KrakenD, napisany w Go, zapewnia tylko podstawowe elementy, ale zachwala wysoką wydajność jako kluczową funkcję. KrakenD jest dostarczany jako pojedynczy, niezależny plik binarny, jak ma to miejsce w przypadku większości aplikacji zbudowanych w Go. Alternatywnie można go skompilować ze źródła lub użyć jako biblioteki Go, jeśli chcesz zbudować wokół niego własną aplikację.

KrakenD używa pliku konfiguracyjnego, który może być ręcznie zwijany lub wygenerowany maszynowo. Ograniczanie szybkości, manipulowanie odpowiedziami, przekazywanie dalej, debugowanie punktów końcowych, środki bezpieczeństwa protokołu (np. Ochrona przed przechwytywaniem kliknięć), proxy, stubbing i buforowanie odpowiedzi w pamięci są obsługiwane po wyjęciu z pudełka.

Wystąpienia KrakenD można łączyć w klastry w celu zapewnienia wysokiej dostępności. Nie jest do tego potrzebne żadne dodatkowe oprogramowanie, tylko sam KrakenD. Możesz także wdrożyć KrakenD w klastrze Kubernetes bez większej dodatkowej pracy. Asortyment oprogramowania pośredniego innej firmy można pobrać z repozytorium KrakenD GitHub.

Wsparcie dla przedsiębiorstw, w tym doradztwo i szkolenia, jest dostępne u twórców KrakenD, chociaż ceny nie są ujawniane.

Platforma MuleSoft Anypoint

Platforma Anypoint firmy MuleSoft ma być ofertą kompletną - obejmuje projektowanie interfejsów API, budowę, hosting, zarządzanie, integrację i wsparcie dla programistów w jednym produkcie komercyjnym. 

Anypoint umożliwia tworzenie interfejsów API od podstaw lub ponowne wykorzystanie istniejących konektorów i integracji utworzonych przez innych klientów MuleSoft i udostępnionych w Anypoint Exchange. Dostępne są łączniki dla protokołów ogólnych (dostęp do plików, HTTP, poczta e-mail), modułów językowych do transformacji danych (Java, JavaScript), usług w chmurze (Amazon AWS), aplikacji komercyjnych (Salesforce, SAP) i aplikacji typu open source (MongoDB).

Dla tych, którzy tworzą interfejsy API, które będą wykorzystywane przez partnerów lub społeczeństwo, Anypoint udostępnia Menedżera społeczności API do tworzenia interfejsów użytkownika sieci - co MuleSoft nazywa „portalami” - dla tych interfejsów API. Zawiera interaktywną dokumentację, personalizację (w tym funkcje, takie jak dostosowywanie danych wyjściowych w oparciu o geolokalizację użytkownika) i analizę użycia API.

Anypoint oferuje trzy plany cenowe: Gold, Platinum i Titanium, które różnią się w zależności od poziomu obsługi klienta i funkcji dla przedsiębiorstw. Wszystkie trzy plany obejmują nieograniczoną liczbę interfejsów API i dodatkowe opłaty za złącza „premium” (np. Złącze mainframe IBM AS / 400).

Netflix Zuul

Zuul, projekt open source stworzony przez inżynierów z Netflix, został zbudowany wewnętrznie do obsługi żądań routingu do usług przesyłania strumieniowego wideo Netflix. Nie ma komercyjnej oferty Zuula - przynajmniej nie od Netflix - więc będziesz musiał uruchomić Zuul i zarządzać nim całkowicie samodzielnie.

Zuul jest napisany w Javie i używa typowych narzędzi Java - Gradle, Ivy, Maven - do rozpoczęcia pracy. Zuul oferuje stosunkowo minimalny zestaw funkcji w porównaniu z innymi systemami zarządzania API, koncentrując się na filtrowaniu i wysyłaniu żądań przychodzących między usługami. Zuul zapewnia funkcje wykrywania usług, równoważenia obciążenia, buforowania połączeń i debugowania („paszport żądania”), ale brakuje mu bardziej wyrafinowanych funkcji, takich jak wdrażanie programistów i automatyczna dokumentacja.

Zuul to aktywny projekt z wieloma nowymi funkcjami zaplanowanymi w przyszłych wersjach. Na przykład, nadchodzący „filtr brownout” wyłączy niektóre funkcje, aby zwolnić procesor w okresach dużej aktywności.

Tyk

Tyk zawiera domyślnie wiele: bramę API, narzędzia analityczne, portal deweloperski i pulpit zarządzania. Zawiera również funkcje do naśladowania interfejsów API przed ich formalnym wydaniem, wbudowane buforowanie żądań (które może być zawarte bezpośrednio w definicji interfejsu API) oraz szablony odpowiedzi dla różnych kodów błędów HTTP.

Tyk jest dostępny w czterech wersjach, z których każda ma inne zastosowania. Wydanie społeczności, otwarte oprogramowanie Tyk, zawiera tylko bramę, która obsługuje proxy, kontrolę dostępu, transformacje i logowanie. Możesz bezpośrednio wprowadzić własną funkcjonalność lub skorzystać z ekosystemu wtyczek Tyk, obsługującego wiele języków.

Wersja lokalna umożliwia korzystanie z w pełni funkcjonalnego produktu komercyjnego za zaporą. Licencje na jedną bramę - zasadniczo wersje dla programistów - są dostępne za darmo, bez ograniczeń wywołań API, chociaż API nie może być używane w warunkach komercyjnych. Licencje do użytku komercyjnego zaczynają się od 3000 USD rocznie.

Wersje chmurowe i wielochmurowe, dostępne dla różnych popularnych usług w chmurze, zapewniają Tyk jako usługę hostowaną. Podstawowa wersja z pojedynczą chmurą, która obsługuje 1000 wywołań API dziennie, jest dostępna bezpłatnie (oprócz opłat pobieranych przez dostawcę usług w chmurze); plany na poziomie profesjonalnym zaczynają się od 450 USD miesięcznie.

Menedżer API WSO2

WSO2 API Manager jest w istocie produktem open source, zbudowanym w Javie. Produkt jest dostępny do wdrożenia lokalnego lub hostowanego w chmurze ze wsparciem komercyjnym lub jako usługa zarządzana w chmurze.

Różne opcje wdrażania pozwalają na wiele różnych scenariuszy zarządzania. Na przykład lokalne wdrożenie WSO2 może mieć swoje zasady i inną konfigurację wymuszane za pośrednictwem hostowanego w chmurze portalu deweloperskiego, przy czym zmiany są albo synchronizowane między chmurą a lokalem lub okresowo wypychane z chmury (w przypadku środowisk, które muszą być zablokowane).

WSO2 ma około 200 złączy, które można wykorzystać do połączenia usług zewnętrznych. Wiele z nich jest powszechnych zszywek dla programistów: Slack, Splunk, Kafka, Redis, Amazon S3 i tak dalej.

Inna funkcja WSO2, „mikrogateway API”, zapewnia, że ​​określone rodzaje wywołań otrzymują dodatkowe zabezpieczenia i mniejsze opóźnienia. Na przykład wywołania używane do zarządzania bramą lub połączenia kierowane między mikrousługami mogą być obsługiwane w ten sposób.

Nowy dodatek do WSO2 dodaje integrację z siatką usług Istio dla Kubernetes. Istio nie zarządza interfejsami API udostępnianymi przez mikrousługi, którymi zarządza, więc WSO2 integruje się z serwerem proxy Envoy używanym przez Istio do tego celu.

Ceny ofert komercyjnych WSO2 rozpoczynają się od bezpłatnego dwutygodniowego okresu próbnego z maksymalnie milionem wywołań API, a następnie wynoszą 550 USD miesięcznie za 20 milionów połączeń, a stamtąd są skalowane do niestandardowych konfiguracji.