Patrocinado por:

«API First»

David Bonilla

OCIO@

Hugo Tobio

Cualquier profesional que lleve en este negocio más de cinco minutos sabe lo que es una API, pero pocos serían capaces de explicárselo de forma sencilla a un muggle sin superpoderes de programación

21 jul 2021 . Actualizado a las 05:00 h.

Aún nos cuesta meternos en la mollera que el uso de Internet es mayoritariamente móvil y que, por tanto, nuestras aplicaciones web deberían ser mobile first.

Los amantes de los monitores grandes como una cama de matrimonio argumentan que la mayoría de ese tráfico móvil es personal o recreativo, así que, ese mobile first debería circunscribirse a las webs de gran consumo o B2C. Lo que nadie discute es que, haga lo que haga nuestro software, tendremos una ventaja competitiva si diseñamos nuestras aplicaciones para que sean API first

Cualquier profesional que lleve en este negocio más de cinco minutos sabe lo que es una API, pero pocos serían capaces de explicárselo de forma sencilla a un muggle sin superpoderes de programación. Una API es una especificación formal que define cómo interactuar con una aplicación de software y permite abstraerse de cómo está implementada la misma. 

Supongo que la mejor manera de que la lectora más asidua de la Bonilista -mi madre- entienda el concepto es mostrándoselo. Matt Chilling ha publicado una API para poder consultar chistes de Chuck Norris. Tirando de ella y la de Telegram, por ejemplo, en menos de una hora podría desarrollar un programita que publicara todos los días, a las 7 de la mañana, un chiste de Chuck en mi grupo de colegas del colegio. O, también, seis ofertas de empleo. Todo, sin saber qué base de datos ha usado Matt o en qué lenguaje de programación está hecho Telegram. 

Pero aunque ahora hasta mi madre sabe qué es una API, lo que no está tan claro es qué beneficios y ventajas obtendremos si nuestras aplicaciones ofrecen una

La principal razón para no implementar una API es creer que nadie va a usarla -¿quién querría conectarse con nuestro software y para qué?-, pero también podemos contrargumentar que para que alguien considere conectarse con nuestro software, primero debería saber que puede hacerlo. 

Hace unas semanas, durante una cena, mi amiga Claudia me sugirió la posibilidad de republicar las ofertas de empleo de Manfred relacionadas con la gestión de proyectos y metodologías ágiles en su portal CertificaciónPM.com, algo que nos aportaría ventajas a ambos: ella ofrecería trabajos relevantes a sus alumnos; y yo conseguiría que mis ofertas llegaran a una audiencia más amplia. 

Le pregunté a Claudia si disponía una API abierta, porque nosotros aún no habíamos bastionado y abierto la nuestra, pero desgraciadamente no tenía, así que, esa integración tendrá que esperar. ¿Cuántas oportunidades similares nos estaremos perdiendo?

Al fin y al cabo, una API pública puede tener una inmensa influencia en la estrategia de una compañía y hasta su filosofía de trabajo, haciendo que esté mucho más abierta a integrarse y colaborar con terceros. Algo que parece imprescindible para empresas que basan su modelo de negocio en la creación y gestión de una comunidad, como cualquier marketplace.

Y aunque no quieras abrir tu software al mundo, implementar una API sigue siendo una buena idea. Nosotros trabajamos con datos personales de nuestros usuarios que deben ser especialmente protegidos, por eso tiene sentido que nadie pueda acceder directamente a esos datos -ni siquiera nosotros- solo a través de una API privada, especialmente securizada y cuyo acceso está muy restringido, que registra quién, cómo y cuando ha accedido o modificado los mismos. 

Para el resto, puedes crear otra API -mucho más accesible, pero también con un alcance más acotado, por ejemplo, de simple lectura de ofertas de empleo- que limite el destrozo que podría causar una brecha de seguridad. Puede que hoy solo la consumamos nosotros mismos en nuestra propia web, pero mañana podríamos hacerlo desde una aplicación móvil, otro nuevo producto o, finalmente, permitir que la use un tercero -como CertificaciónPM- sin tener que modificar nuestro código. 

Evidentemente, todo esto no sale gratis. Una API no deja de ser un «contrato» en el que te comprometes a mantener determinados servicios de software que serán consumidos por terceros para construir los suyos propios. Si interrumpes esos servicios o los modificas sin previo aviso, afectarás a todo el ecosistema que haya crecido alrededor… el mismo riesgo que corres tú con las APIs que consumas. Por eso Naval Ravikant, conocido emprendedor e inversor tecnológico, afirma que «los mendigos construyen sobre APIs. Los reyes, sobre open source». 

Puede que lo que dice Naval sea cierto, pero también lo es que, afortunadamente, la época de las monarquías absolutistas ya forma parte del pasado. Hace 30 años, había muy pocas compañías de software y era normal que estas desarrollaran internamente cada línea del código de sus productos. Durante este tiempo, la industria ha madurado y -como cualquier industria madura- ha generado su propia «cadena de suministro» en forma de proveedores de APIs que han bajado la barrera de entrada, permitiendo que desarrollemos nuestras aplicaciones sin tener que empezar de cero ni reinventar la rueda. 

Es evidente que esa cadena de suministro puede fallar, que algún proveedor puede quebrar o dejarnos en la estacada, de la misma manera que puede fallar en cualquier otra industria. Ese miedo no puede condicionarnos, de la misma manera que a Citroën no se le ocurre ponerse a fabricar directamente los cinturones de seguridad o la electrónica que monta en sus coches por si alguno de sus proveedores falla o desaparece, sino tener siempre alternativas por si alguna vez sucede lo inesperado. Para los que no tenemos la suerte de «disparar con pólvora del Rey», merece la pena el riesgo. 

Por eso reconozco que, para mí, la implementación de una API no solo tiene un componente técnico o de negocio sino, también, ideológico. Al abrir nuestra aplicación -por modesta que sea- para que otros puedan usarla, contribuiremos a democratizar el desarrollo de software y, también, a ese ideal de Red igualitaria, interconectada y colaborativa con la que un día soñaron los padres de Internet.   

Esta Bonilista ha sido posible gracias a...

Si ya sabes programar, aprende a programar bien. Craft Code es una academia de buenas prácticas de programación. No se centran en la enseñanza de lenguajes o herramientas concretas sino en mejorar la calidad de código de sus alumnos enseñándoles una serie de conocimientos y buenas prácticas -como patrones de diseño, SOLID, testing, refactoring o DDD- que les ayudarán durante toda su carrera profesional. 

La formación es online, dura entre tres y seis meses y está diseñada para programadores que quieran acelerar su aprendizaje: incluye 280 horas de contenido, muchas prácticas supervisadas, 1 a 1 en directo con los profesores, y el desarrollo de un proyecto final que cimenta todos los conceptos aprendidos. 

Si buscas una formación que te permita impulsar tu carrera y acceder a mejores ofertas laborales, Craft Code puede ser una excelente oportunidad. Además, si utilizas el código 'BONILISTA' obtendrás un 20 % de descuento. ¡Aprovecha!  

Este texto se publicó originalmente en la Bonilista, la lista de correo de noticias tecnológicas relevantes para personas importantes. Si desea suscribirse y leerlo antes que nadie, puede hacerlo aquí ¡es bastante gratis!