Tengo una sola API que se encuentra detrás de Azure API Management (APIM). Además, tengo algunas aplicaciones independientes que necesitan consumir esta API a través de APIM (digamos, la aplicación A y la aplicación B, ambas son aplicaciones de funciones). Mi pregunta es, ¿debo crear dos conjuntos separados de API en APIM para que cada aplicación de función consuma la única API? ¿O debería enviarlos a través de la misma API APIM? ¿Qué es la mejor práctica? He buscado en Microsoft pero todavía no he podido encontrar nada definitivamente.
Además, ¿habría alguna diferencia si fueran dos SPA consumiendo la API? (Digamos una aplicación de spa de consumo y una aplicación de spa de administración)
El enfoque general es estructurar sus API en APIM en torno a cómo se consumirán. Dividir una sola superficie de API en productos/API/operaciones separados en APIM le permite especificar diferentes políticas, requisitos de acceso, ver esas llamadas por separado en registros y análisis, etc. Entonces, si en su escenario no tiene la necesidad de distinguir entre sus dos aplicaciones, no habría necesidad de dividir nada.
Pero supongamos que desea que una aplicación use la autenticación de certificados y otra que confíe en las claves de suscripción; ese sería un buen caso para tener dos productos en APIm.
Del mismo modo, supongamos que una aplicación solo necesita un conjunto de operaciones y otra necesita una diferente: este es un caso sólido para dividirse en varias API.
Si todo lo demás falla, sigue teniendo sentido dividir las API en bloques lógicos. Dependiendo de su área temática, puede tener: