API / APIGEE Gateway Interview Questions
What is Target Server configuration in Apigee and why is it used instead of hardcoding backend URLs?
A Target Server is a named, environment-scoped configuration object that defines a backend service endpoint (host, port, SSL settings). Instead of hardcoding the backend URL in the proxy's TargetEndpoint XML, you reference a Target Server by name. This allows the same proxy to point to different backends in different environments (dev vs prod) and enables seamless backend updates without proxy redeployment.
<!-- TargetEndpoint using a TargetServer (recommended) --> <TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <!-- Reference a named Target Server instead of hardcoded URL --> <Server name="orders-backend-server"/> </LoadBalancer> <Path>/api/v1</Path> </HTTPTargetConnection> </TargetEndpoint> <!-- Target Server definition (set in Apigee UI/API per environment) --> <!-- Environment: prod --> { "name": "orders-backend-server", "host": "orders.prod.internal.example.com", "port": 443, "sSLInfo": { "enabled": true, "clientAuthEnabled": false }, "isEnabled": true } <!-- Environment: dev --> { "name": "orders-backend-server", "host": "orders.dev.internal.example.com", "port": 8080, "sSLInfo": { "enabled": false } } <!-- Load balancing across multiple target servers --> <LoadBalancer> <Algorithm>RoundRobin</Algorithm> <Server name="orders-backend-1"/> <Server name="orders-backend-2"/> <Server name="orders-backend-3"/> </LoadBalancer>
More Related questions...