Korzyści z używania usługi Azure API Management do tworzenia interfejsu API
Zarządzanie architekturami mikrousług może okazać się trudne. Na przykład oddzielne zespoły implementujące przekrojowe wymagania, takie jak dotyczące zabezpieczeń, są odpowiedzialne za przeprowadzanie tego procesu w spójny sposób.
W sklepie online zespoły deweloperów skompilowały szczegóły produktu i szczegóły zamówienia mikrousługi pod różnymi adresami URL hosta. Ponadto usługa szczegółów zamówień odpowiada za pomocą języka XML. Chcesz upewnić się, że wszystkie odpowiedzi mają format JSON, aby ułatwić pracę deweloperom aplikacji klienta.
W tej lekcji poznasz funkcje usługi API Management. Za pomocą tych funkcji można zintegrować różne mikrousługi i przedstawić je aplikacjom klienckim ze spójnym zachowaniem pod jednym adresem URL.
Wyzwania związane z architekturą mikrousług
Podejście mikrousług do architektury tworzy modularną aplikację, w której każda część jest luźno powiązana z innymi. Niezależne wdrażanie usług zmniejsza wpływ wszelkich usterek, które mogą sprawić, że zostaną one przetestowane w środowisku produkcyjnym. Takie modularne podejście ułatwia powrót do stabilnej wersji. Ponadto można tworzyć małe, autonomiczne zespoły deweloperów dla każdej mikrousługi. Ten podział jest dobrze dopasowany do nowoczesnych rozwiązań Agile.
Jednak architektury mikrousług mogą również oznaczać wyzwania, takie jak:
- Aplikacje klienckie są połączone z mikrousługami. Jeśli chcesz zmienić lokalizację lub definicję mikrousługi, może być konieczne ponowne skonfigurowanie lub zaktualizowanie aplikacji klienckiej.
- Każda mikrousługa może być prezentowana pod różnymi nazwami domen lub adresami IP. Taki sposób prezentacji może sprawić wrażenie niespójności dla użytkowników i negatywnie wpłynąć na markę.
- Wymuszanie spójnych reguł interfejsu API i standardów dla wszystkich mikrousług może być trudne. Na przykład jeden zespół może chcieć odpowiedzieć przy użyciu kodu XML, a inny może preferować kod JSON.
- Pojedyncze zespoły są odpowiedzialne za prawidłowe implementowanie zabezpieczeń w swoich mikrousługach. Trudno jest wprowadzić te wymagania centralnie.
Jak usługa API Management może pomóc?
Dodając wiele interfejsów API, funkcji i innych usług do usługi API Management, możesz złożyć te składniki w zintegrowany produkt, który będzie stanowić pojedynczy punkt wejścia do aplikacji klienckich. Tworzenie interfejsu API przy użyciu usługi API Management ma między innymi następujące zalety:
- Aplikacje klienckie są powiązane z interfejsem API wyrażającym logikę biznesową, a nie z podstawową implementacją techniczną z poszczególnymi mikrousługami. Można zmieniać lokalizację i definicję usług bez konieczności ponownej konfiguracji ani aktualizacji aplikacji klienckich.
- Usługa API Management pełni rolę pośrednika. Przekazuje żądania do właściwej mikrousługi niezależnie od lokalizacji i zwraca odpowiedzi użytkownikom. Użytkownicy nigdy nie widzą różnych identyfikatorów URI, w których są hostowane mikrousługi.
- Korzystając z zasad usługi API Management, można wymuszać spójne reguły dla wszystkich mikrousług w produkcie. Można na przykład przekształcić wszystkie odpowiedzi XML na kod JSON, jeśli jest to preferowany format.
- Zasady umożliwiają również wymuszanie spójnych wymagań w zakresie zabezpieczeń.
Usługa API Management zawiera także przydatne narzędzia — można testować każdą mikrousługę i jej operacje, aby upewnić się, że ich zachowanie jest z wymaganiami. Ponadto można monitorować zachowanie i wydajność wdrożonych usług.
Usługa Azure API Management obsługuje importowanie aplikacji funkcji platformy Azure jako nowych interfejsów API lub dodawanie ich do istniejących interfejsów API. Proces automatycznie generuje w aplikacji funkcji platformy Azure klucz hosta, który jest następnie przypisywany do nazwanej wartości w usłudze Azure API Management.
W następnej lekcji do interfejsu API sklepu online utworzonego w poprzednim ćwiczeniu zostanie dodana mikrousługa ze szczegółami zamówień. Dzięki temu można zintegrować szczegóły zamówienia z mikrousługą szczegółów produktu i przedstawić je zarówno w tej samej domenie, jak w ramach zintegrowanego interfejsu API.