18 Aralık 2019 Çarşamba

Yazılım Mimarisi Microservices Architecture - API Gateway

Giriş
İster Rest ister SOA mimarisi kullanılsın, bazen bir API Gateway lazım olabiliyor. API Gateway dışarıya açık servislerin çağırılma noktasıdır.

API Gateway vs API Proxy
Burada her ikisini de farklı şeylermiş gibi anlatan bir yazı var. Yazıya göre API Proxy daha basit olanı. Bence zaten karışık olan teknoloji çorbasına eklenmiş gereksiz bir baharat daha.

API Gateway Ne Yapar?
Bazı başlıklar şöyle.
- Authentication
- User Management
- Logging and Monitoring
- Payload Management
- Scaling
Bir diğer  başlık şöyle
API Gateway responsibilities
- Routing
- API composition
- Authentication
- Monitoring
- Rate limiting
- Protocol Translation
- Request logging
- Response caching
Örnek
service1.yourcompany.com ve service2.yourcompany.com şeklinde iki adres vereceğimize, api.yourcompany.com/service1 şeklinde bir uç nokta tanımlar ve servis çağrılarını burada yaparız.

WEB + Mobile + 3rd Party Müşteriler İçin Farklı API Gateway'ler
Müşterilerin istekleri çok farlı ise bu istekleri daha iyi karşılayacak farklı API Gateway'ler yazmak mümkün.

Request Transformation İşleri
Gelen isteği değiştirmek gerekebiliyor. Yapılabilecek bazı işlemler şöyle
1. Copying an API Key from the query string to the header
2. Removing a query string value
3. Moving an API key from a query string to the header
4. Adding a version number to a query string
5. Modifying the header token to Bearer Auth
6. Moving JWT from header to body
7. Sanitizing the body
8. Changing the HTTP method
- Copying an API Key ve Moving an API key maddelerinde sorgu URL'si içindeki key header'a kopyalanıyor veya taşınıyor

Protocol Translation İşleri
Örneğin bazı istekler REST servislerine yönlendirilirken, bazıları AMPQ kuyruğuna yazılabilir.

User Management İşleri
Açıklaması şöyle.
Once the user is registered and authenticated, it will manage the user’s interactions with the website and limit its access based on predefined criteria. The API Gateway will take the pressure of deciding what type of information the user can interact with from your API.
Payload Management İşleri
Açıklaması şöyle.
The API Gateway will take the request and route it to the correct microservice and in exchange, receive a response. There are scenarios when that response is not something that the front end can handle and will have to route it to a second microservice or and external service provider before it can return the correct response or format. All of this is done without exposing any of the complex logic or the API endpoints to the client.
Aggregation
Şeklen şöyle




Hiç yorum yok:

Yorum Gönder