Supongamos que ya tenemos la definición de nuestra API con OpenAPI (el fichero YAML/JSON).

APIM (Azure API Management) dispone de una funcionalidad llamada Products, que técnicamente hablando es una agrupación lógica de APIs para que se puedan aplicar un conjunto de reglas de acceso y politicas. Y que no debes confundir con el termino API Product, que es una oferta comercial con el proposito de monetizar.

Para entender esto voy a plantear un ejemplo: supongamos que tenemos un servicio web llamado X que consta de tres SKU: básico, estandar y premium. Para simplificar, consideraré que este SKU se diferencia por sus cuotas de request y por tanto cargo asociado a las solicitudes. Ver siguiente tabla:

Por tanto desde una perspectiva de monetización, solo tenemos un API Product (un solo servicio de backend) pero tres planes de precios diferentes.

Una de las formas que se puede utilizar para implementar el anterior plan de precios con APIM es el siguiente:

 

  1. Crear la definición del API del Servicio X.
  2. Crear tres productos diferentes dentro del API, los tres anteriores.
  3. Asignar los tres productos al Servicio X.
  4. Configurar las politicas en el producto para cumplir con la tabla de precios.
Producto vs APIM Product

Logicamente he usado unas cuotas muy simples, en la información del enlace de Microsoft Azure, que he puesto antes podrás ver varias opciones más con las que jugar y crear tu estrategia de mercado: trafico, …

Una vez definido nos quedará algo así:

Productos en APIM

Podreis observar que he puesto un usuario Guest para la versión basica, de esta forma podrá usarlo un usuario anonimo, es por rellenar el ejemplo.

La parte más delicada es la gestión de la suscripción.

Como desarrollador que soy, deseo consumir esa API, por tanto debemos crear una suscripción que se amolde a lo que voy a pagar.

Como crear una suscripción se queda fuera del alcance de este pequeño articulo, te remito a este articulo de suscripciones en Azure.

Aunque si que os muestro como se ve la parte que nos importa la Key para poder consumir esa API. Los datos de consumo se registran segun la clave de la suscripción. Por tanto, estas claves han de administrarse de forma segura para que alguien la lie.

Suscripcion Servicio Standar

Como podrás ver he creado un Product Service X (Standar) con un suscriptor llamado Subscriber. Con esto ya puedo calcular lo que me esta gastando ese usuario, para moneterizar mi API.

Recapitulando sobre las cuotas:

  • Hemos puesto una cuota que nos permitirá monterizar la API. Eso es debido a los máximo y minimos de lo limites que se aplican al suscriptor.
  • Hemos puesto una frecuencia de uso, para los umbrales de request, evitando así que tengamos un pico inesperado en nuestro sistema.

Recapitulando sobre las politicas:

Y por ultimo nos interesa generar reports, para poder mostrar esta información al cliente, por ejemplo.

Para ello APIM nos provee de informes que podemos ver en este enlace.

Donde los más importantes son:

El listado sera un JSON:

Lsitado JSON de APIM

Sin dejar dejar de lado los analisis que nos da la herramienta ad-hoc de APIM. Ver este enlace a la documentación de Microsoft.

Lo cual nos permite extender su capacidad de analisis y Stream Events o Event hub (ver documentación) o usar Logs (ver documentación).

Como bien sabes cualquier insight nos permitirá hacer previsiones y comenzar a taladrar al cliente con que su uso esta apunto de superar máximo, o que si usa el otro plan sería mejor, cosas así. Al final todo se traduce en una buena acción comercial con datos reales.

Hasta aquí todo, como veis es muy sencillo establecer un control monetario en nuesta API y comenzar a ganar dinero, aunque solo sea simbolico.