Antipatrón: definir varios ProxyEndpoints en un proxy de APIs

Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

La configuración de ProxyEndpoint define la forma en que las aplicaciones cliente consumen las APIs a través de Apigee. ProxyEndpoint define la URL del proxy de API y cómo se comporta un proxy: qué políticas se deben aplicar, a qué endpoints de destino se debe dirigir el tráfico y las condiciones que se deben cumplir para que se ejecuten estas políticas o reglas de ruta.

En resumen, la configuración de ProxyEndpoint define todo lo que se debe hacer para implementar una API.

Antipatrón

Un proxy de API puede tener uno o varios endpoints de proxy. Definir varios ProxyEndpoints es un mecanismo sencillo para implementar varias APIs en un solo proxy. Esto te permite reutilizar políticas o lógica empresarial antes y después de invocar un TargetEndpoint.

Por otro lado, al definir varios ProxyEndpoints en un solo proxy de API, se combinan conceptualmente muchas APIs no relacionadas en un solo artefacto. Esto dificulta la lectura, la comprensión, la depuración y el mantenimiento de los proxies de API. Esto va en contra de la filosofía principal de los proxies de API, que es facilitar a los desarrolladores la creación y el mantenimiento de APIs.

Impacto

Varios ProxyEndpoints en un proxy de APIs pueden hacer lo siguiente:

  • Dificultar que los desarrolladores entiendan y mantengan el proxy de API.
  • Ofuscar analíticas. De forma predeterminada, los datos analíticos se agregan a nivel de proxy. No hay un desglose de las métricas por endpoint de proxy, a menos que cree informes personalizados.
  • Dificulta la solución de problemas con los proxies de APIs.

Práctica recomendada

Cuando implementes un nuevo proxy de API o rediseñes uno que ya tengas, sigue estas prácticas recomendadas:

  1. Implementa un proxy de APIs con un solo ProxyEndpoint.
  2. Si hay varias APIs que comparten el mismo servidor de destino o requieren la misma lógica antes o después de la invocación del servidor de destino, considera la posibilidad de usar flujos compartidos para implementar esa lógica en diferentes proxies de API.
  3. Si hay varias APIs que comparten una ruta base de inicio común, pero difieren en el sufijo, usa flujos condicionales en un solo ProxyEndpoint.
  4. Si existe un proxy de API con varios ProxyEndpoints y no hay ningún problema, no es necesario que hagas nada.

Si se usa un ProxyEndpoint por proxy de API, se obtienen las siguientes ventajas:

  1. Proxies más sencillos y fáciles de mantener
  2. La información de Analytics será más precisa, como el rendimiento del proxy y el tiempo de respuesta objetivo, y se registrará por separado en lugar de agregarse para todos los ProxyEndpoints.
  3. Solución de problemas más rápida

Más información