Practice
1. What is the primary role of an
API Gateway in a microservices architecture?easy
Solution
Step 1: Understand the role of API Gateway
An API Gateway acts as a single entry point for clients to access multiple backend services, simplifying client communication.Step 2: Eliminate incorrect options
Options A, C, and D describe roles unrelated to API Gateway functions like data storage or replacing services.Final Answer:
To act as a single entry point that routes client requests to multiple backend services -> Option AQuick Check:
API Gateway = Single entry point routing [OK]
Hint: API Gateway = single access point for many services [OK]
Common Mistakes:
- Confusing API Gateway with database or storage
- Thinking API Gateway replaces backend services
- Assuming API Gateway only handles security
2. Which of the following is the correct way to configure an API Gateway to route requests to a backend service named
user-service?easy
Solution
Step 1: Check URL path and protocol
The route key should start with a slash and the backend URL must include the protocol (http://) and full path.Step 2: Validate each option
"/users": "http://user-service/api/v1/users" correctly uses "/users" as route and full URL with protocol and path. "/users": "user-service/api/v1/users" misses protocol. "users": "http://user-service/api/v1/users" misses leading slash in route. "/users": "http://user-service/api/v1" misses the full path to users.Final Answer:
"/users": "http://user-service/api/v1/users" -> Option BQuick Check:
Route starts with / and URL includes http:// [OK]
Hint: Routes start with / and backend URLs need protocol [OK]
Common Mistakes:
- Omitting http:// in backend URL
- Missing leading slash in route path
- Using incomplete backend service path
3. Given the following API Gateway configuration snippet, what will be the response path for a client request to
/orders/123?
{
"/orders": "http://order-service/api/v2/orders"
}medium
Solution
Step 1: Understand path forwarding in API Gateway
The gateway appends the path after the route key to the backend URL. Here, "/orders" is the route key, so "/123" is appended.Step 2: Construct the full backend URL
Appending "/123" to "http://order-service/api/v2/orders" results in "http://order-service/api/v2/orders/123".Final Answer:
http://order-service/api/v2/orders/123 -> Option DQuick Check:
Request path appended after route key URL [OK]
Hint: API Gateway appends extra path after route key URL [OK]
Common Mistakes:
- Not appending the extra path segment
- Duplicating the route key in backend URL
- Ignoring the original request path
4. An API Gateway is configured with the following routes:
{
"/products": "http://product-service/api/products",
"/products/details": "http://product-details-service/api/details"
}
A client request to /products/details/456 returns a 404 error. What is the likely cause?medium
Solution
Step 1: Analyze route matching order
API Gateways usually match routes in order or by specificity. If the generic "/products" route is matched first, it will forward requests to product-service, ignoring the more specific route.Step 2: Understand 404 cause
The product-service likely does not handle "/details/456", causing 404. The specific route is shadowed and never reached.Final Answer:
The more specific route "/products/details" is shadowed by the generic "/products" route -> Option AQuick Check:
Route specificity matters to avoid shadowing [OK]
Hint: Specific routes must be checked before generic ones [OK]
Common Mistakes:
- Ignoring route matching priority
- Assuming API Gateway can't handle nested routes
- Blaming client request format without checking routes
5. You need to design an API Gateway pattern that aggregates data from
user-service and order-service to provide a single response for a client request to /user-orders/{userId}. Which pattern best fits this requirement?hard
Solution
Step 1: Identify the need for data aggregation
The client wants combined data from two services in one response, which requires aggregation logic.Step 2: Match pattern to requirement
The Backend for Frontend (BFF) pattern is designed to aggregate and tailor responses for specific client needs by calling multiple backend services.Final Answer:
Backend for Frontend (BFF) pattern to combine multiple service responses -> Option CQuick Check:
Data aggregation needs BFF pattern [OK]
Hint: Aggregate multiple services with Backend for Frontend pattern [OK]
Common Mistakes:
- Choosing simple proxy which doesn't aggregate
- Confusing rate limiting with aggregation
- Using circuit breaker which handles failures, not aggregation
