APIs simples para cuestiones básicas

La simplicidad debería ser un objetivo fundamental en el diseño de una API pública, pero sabemos que en muchos casos no es así. Hace poco encontré dos APIs que son un buen ejemplo de cómo la simplicidad es una característica gravitante a la hora de elegir un servicio:

  • mindicador.cl es un servicio desarrollado por @lee_om que resuelve un problema básico pero muy común en Chile. Es una API de indicadores económicos de Chile, que entrega los valores que más probablemente te van a solicitar integrar en alguna aplicación: UF, UTM, Dólar, Euro, etc. Funciona sin registro y entega datos en JSON. Si vas a utilizarla, se un buen ciudadano y procura utilizar algún caché local.
  • Forecast for Developers es una API de los desarrolladores de Dark Sky, una aplicación de pronóstico meteorológico para iOS bastante popular. Puedes registrar una cuenta gratuita y utilizar sus datos con la condición de dar la atribución que corresponde (un Powered by Forecast basta) para consumir sus datos. La API es muy sencilla, pero la información que trae es muy completa… al punto que para algunas ubicaciones tienen las condiciones por minuto.

La lección acá es Keep it simple, stupid: un servicio para desarrolladores debe estar pensado para poder realmente trabajar con él. Si solicitas registro, que sea automático (yo te entrego mi e-mail y tú me entregas una API key); si es de pago, que se pueda ingresar mi tarjeta de crédito o hacer un pre-pago y listo… no queremos tener que escribirle a alguien ni quiero tener una “relación” con el servicio, sólo los datos, pronto, y de la forma más fácil posible para utilizarlos.

API-First como arquitectura para el diseño de servicios

En muchas ocasiones la API de una aplicación web se considera como una etapa posterior, lo que no es necesariamente un error según el contexto comercial y de los plazos determinados para un proyecto.

Sin embargo, si lo que se está pensando es un servicio como sistema complejo, en el que existen múltiples puntos de contacto con los usuarios (web, móviles, puestos de auto-atención, oficinas de atención al cliente, etc.) es conveniente y sensato pensar y diseñar la arquitectura de su plataforma informática centrándose en las APIs que permiten su operación, en lugar de pasar de implementación a implementación.

Una arquitectura API-First es:

Una arquitectura que trata al usuario de la API como el usuario primario de la aplicación. Esto significa que la API no es una vista alternativa en el paradigma MVC, sino que tiene la más alta prioridad. […] En “API First” la arquitectura impone una API completa, responsiva y bien documentada.

De este modo, la infraestructura tecnológica depende directamente del diseño del servicio en lugar de ser solamente una respuesta a su implementación esperada en un producto: las APIs se modelan como parte de los procesos de interacción del usuario con el sistema, ofreciendo una experiencia unificada a través de sus puntos de contacto.

Referencias: