Revista Tecnología y Ciencia - Universidad Tecnológica Nacional
Año 20 - Número 44 / Mayo - Agosto
DOI:https://doi.org/10.33414/rtyc.44.79-97.2022
Reconocimiento-NoComercial 4.0 Internacional
Presentación: 31/03/2022
Aprobación: 11/07/2022
Marcela Constanzo
Instituto de Tecnología Aplicada Universidad Nacional de la Patagonia Austral-Unidad Académica Río Gallegos - Argentina
mconstanzo@uarg.unpa.edu.ar
Sandra Casas
Instituto de Tecnología Aplicada Universidad Nacional de la Patagonia Austral-Unidad Académica Río Gallegos - Argentina
sicasas@uarg.unpa.edu.ar
Graciela Vidal
Instituto de Tecnología Aplicada Universidad Nacional de la Patagonia Austral-Unidad Académica Río Gallegos - Argentina
gvidal@uarg.unpa.edu.ar
Diana Cruz
Instituto de Tecnología Aplicada Universidad Nacional de la Patagonia Austral-Unidad Académica Río Turbio - Argentina
dcruz@uart.unpa.edu.ar
Las API web permiten la reutilización de software y el acceso a servicios y recursos; y han producido una perspectiva de negocio real: "la Economía API". Por esta razón, se ha vuelto esencial obtener información, para ayudar a definir puntos de referencia y conocer las tendencias emergentes en las distintas etapas del ciclo de vida del desarrollo. Este trabajo presenta los resultados de la primera encuesta enfocada a desarrolladores en Argentina (prinicipalmente). El objetivo del estudio es conocer los usos y problemáticas de los desarrolladores de software que consumen APIs web en Argentina. Esta encuesta recogió información basada en opiniones y experiencias. Los resultados indican que las APIs externas, como REST, almacenamiento e eCommerce son las más utilizadas. Los problemas más críticos reportados se centran en los cambios debido a la evolución de las APIs y el acceso a las respuestas de las cuestiones que implican estos cambios. En relación con la usabilidad destacan errores como la falta o mala documentación y, como aspecto preocupante, el predominio de la resolución manual de problemas.
Palabras claves: APIs Rest, APIs Web, Servicios Web.
Web APIs enable software reuse and access to services and resources, and have produced a real business perspective, the API Economy. For this reason, insights have become essential, to help define benchmarks and provide insights into emerging trends at various stages of the development lifecycle. This paper presents the results of the first survey focused mainly on developers in Argentina. The objective of the study is to know the uses and problems of software developers who consume web APIs in Argentina. This survey collected information based on opinions and experiences. The results indicate that external APIs, such as REST, storage, eCommerce are the most used. The most critical issues reported focus on changes due to the evolution of the APIs and the fields included in the responses. In relation to usability, errors such as the lack or poor documentation and, as a worrying aspect, the predominance of manual problem solving stand out.
Keywords: Rest APIs, Web APIs, Web Service.
En la última década, las APIs (Application Programming Interface) web se han convertido en uno de los pilares del desarrollo de aplicaciones modernas (web, móvil, IoT, microservicios, cloud, etc.) (De, 2017). Además de permitir la reutilización de software y el acceso a servicios y recursos de y entre empresas / instituciones, han producido una nueva y real perspectiva de negocio: la Economía API (Tan et al., 2016:64-68). Por esta razón, se ha vuelto esencial obtener información de los desarrolladores, tanto de las APIs web como de las aplicaciones que las consumen, que ayude a definir puntos de referencias, y proporcione información sobre las tendencias emergentes en las diversas etapas del ciclo de vida del desarrollo. Es también, por este motivo, que las experiencias y opiniones de los desarrolladores son cada vez más consideradas. Empresas globales del sector, como SmartBear1 o RapidAPI 2, ejecutan encuestas a desarrolladores de manera periódica, para mejorar los servicios que ofrecen.
Por otro lado, pero en un sentido similar, varias investigaciones -además de encuestar a desarrolladores- han recurrido a otras fuentes para recabar información de ellos. Es cada vez más frecuente analizar los registros y datos de plataformas tales como StackOverflow3 o GitHub4 (Brito et al., 2020). Esta búsqueda de información tiene por objetivos impulsar y consolidar la economía digital, descubriendo las tendencias, innovaciones y problemas del sector involucrado en APIs web.
En esta dirección, se presentan los resultados de la primera encuesta enfocada en los desarrolladores argentinos (principalmente). Se trata de una instancia inicial de relevamiento, exploratoria y de acercamiento a ciertos tópicos, puesto que existen una gran diversidad de tipos y dominios de APIs web, de herramientas y de problemas que diariamente los desarrolladores deben resolver, a la hora de acceder a los servicios y a los recursos por intermedio de las APIs web. Esta encuesta tuvo como objetivo, en particular, conocer los usos y los problemas de los desarrolladores en Argentina.
Para ello, recabó información basada en sus opiniones y experiencias respecto de su utilización.
El diseño del cuestionario involucró tres cuestiones fundamentales:
P1: ¿Qué APIs web utilizan los desarrolladores la República Argentina?
P2: ¿Qué herramientas y plataformas se utilizan en el desarrollo de software con APIs Web?
P3: ¿Cuáles son los problemas más habituales que se presentan al usar APIs Web?
Los resultados indican que las APIs externas, de tipo REST, de almacenamiento, de eCommerce son las más usadas. En relación con los problemas más críticos reportados, están centrados principalmente en cambios por la evolución de las APIs. La usabilidad, errores y la falta o inadecuada documentación, son aspectos preocupantes. Una cuestión que observamos como crítica, es que la resolución de problemas es predominantemente de manera manual.
El presente trabajo está organizado de la siguiente manera: Trabajos relacionados, Metodología, Resultados, Discusiones y Conclusiones.
Anualmente la compañía RapidAPI (RapidApi, 2020) expone los resultados de una encuesta a todos los sectores relacionados a APIs web (empresas, desarrolladores, etc.). La encuesta se mantiene abierta durante un mes y las respuestas provienen de desarrolladores de 120 países (no especifica la cantidad de participantes). El objetivo de este reporte es además de caracterizar el tipo APIs y desarrolladores involucrados, analizar avances, tendencias y problemas. Su resultado es un documento orientador de importancia para el sector tanto de producción como de consumo de APIs web. Algunos ítems de la encuesta RapidAPI han sido incluidos en nuestro estudio.
La empresa SmartBear también presenta un informe sobre el estado de las APIs (SmartBear, 2020), identificando los puntos de referencia de la industria con respecto a las tendencias, las mejores prácticas, las metodologías y las herramientas utilizadas por los desarrolladores. Además considera información sobre la evolución de este tipo de interfaces y los factores que contribuyen a su crecimiento, con el fin de ayudar a las organizaciones a identificar oportunidades para mejorar el diseño, la documentación, las pruebas y su monitoreo. Este informe se realizó a través de una encuesta en línea a una lista global de profesionales de APIs; contenía 52 preguntas, recogiendo un total de 3536 respuestas. La audiencia principal de la encuesta fueron los usuarios finales de código abierto y versiones comerciales de Swagger, SoapUI, y herramientas ReadyAPI. Entre algunos de los resultados analizados podemos resaltar la necesidad de incluir en la documentación información sobre estados y errores.
Asimismo, Espinha et al. (2014:84-93) presentan una entrevista semiestructurada a 6 desarrolladores profesionales, clientes de APIs, con el fin de lograr entender las dificultades que se deben sortear al implementarlas. También se investigó sobre cómo los proveedores prevén o cómo van organizando la evolución de sus APIs, explorando como los cambios en el código fuente afectan a sus clientes. El estudio exploratorio se realizó sobre algunas APIs web tales como, Twitter, Google Maps, Facebook y Netflix, analizando el estado, las prácticas, su evolución y su impacto sobre los clientes, finalizando con un conjunto de observaciones sobre las mejores prácticas para definir esta evolución de las APIs web.
Aué et al. (2018) identifican 11 causas generales de las fallas en la integración de las APIs: entrada de usuario no válida, entrada de usuario faltante, datos de solicitud caducados, datos de solicitud no válidos, datos de solicitud faltantes, permisos insuficientes, procesamiento doble, configuración, datos de servidor faltantes, internos y de terceros. Estas casusas surgen del análisis 2,43 millones de respuestas (logs) de error de APIs del servicio de pago Adyen, que genera más de 60000 errores diarios. Los autores complementaron el análisis con una encuesta a 40 desarrolladores/consumidores de APIs web, que permitió conocer cuáles de las fallas identificadas tienen impacto en los consumidores. Según las percepciones de los participantes de la encuesta, los problemas internos y relacionados con terceros, causados por el proveedor de API, se experimentan como los más relevantes en la producción de aplicaciones. Mientras que, los problemas que se originan en el usuario final, como la entrada del usuario no válida y la entrada del usuario faltante, tienen un impacto relativamente pequeño en las aplicaciones que utilizan la API. Los encuestados también opinaron en relación con la documentación que usan para integrar las APIs web a las aplicaciones: principalmente usan la documentación oficial de la API para implementar correctamente la API, seguida de ejemplos de código. También destacaron diversas deficiencias en la documentación en general y en particular: la insuficiencia de las guías de implementación e integración, la inexistencia de guías para recuperarse de los errores, el impacto de las fallas, etcétera.
Stocker y Zimmermann (2021:174-193) presentan los resultados de una encuesta a proveedores de APIs web que tiene como objetivo comprender las razones que obligan a los arquitectos de software y desarrolladores de API a cambiarla y las consecuencias de dichos cambios. La encuesta on-line constó de 17 preguntas de distinto tipo y los participantes fueron convocados por contactos personales de los autores y por redes sociales. A partir de la participación de 64 profesionales que contestaron el cuestionario, los autores llegan a las siguientes conclusiones: a) las modificaciones a las API suelen ser causadas principalmente por cambios en los requisitos funcionales, impulsados por el cliente o el proveedor, y menos por problemas no funcionales. b) en cuanto al segundo factor de cambios (no funcionales) se indicó que ocurren problemas de calidad y también dan como resultado cambios en la API. La usabilidad y mantenibilidad, seguidos de rendimiento y escalabilidad, son los atributos de calidad que más cambios impulsan. c) en cuanto a las tácticas de cambio y mitigación que los proveedores aplican al realizar las modificaciones en las APIs que ofrecen, estas son: actualizar la especificación o el código, actualizar la documentación de la API, ajustar el número de versión de la API y ajustar los clientes.
Se han conducido diversas encuestas a clientes y desarrolladores de APIs locales (también denominadas como vinculadas estáticamente o de biblioteca). Entre ellos, un estudio de campo sobre frameworks y librerías de Java, (Brito et al., 2020) para detectar cambios importantes que se pudieran producir sobre ellos, después de introducirlos en el código. Fueron identificaron cambios rotundos en 61 proyectos, sobre los cuales se solicitó a los desarrolladores que explicaran las razones. Así, se pudo detectar que los cambios están asociados a la necesidad de implementar nuevas funciones, el deseo de hacer la API más simple y mejorar su mantenibilidad. Como complemento del estudio relevaron 110 publicaciones de StackOverflow relacionadas a los cambios, concluyendo que éstos tienen un alto impacto en los clientes, ya que el 45 % de las preguntas están asociadas a ellos. Como aporte se incluyó una serie de sugerencias para diseñadores de lenguajes, desarrolladores de herramientas y de APIs, e investigadores de ingeniería de software. Businge et al. (2013: 37-46) presentan los resultados de una encuesta a 114 desarrolladores en relación con las APIs de Eclipse, “third-party plugins” o no provistas por el SDK para comprender a que se debe que no son utilizadas. Por su parte, Sawant et al (2018:561-571) buscan analizar y comprender las necesidades de productores y consumidores de APIs Java, en relación con el mecanismo de “deprecación” de métodos. Su encuesta incluyó 17 productores de API y 170 desarrolladores de Java. Piccioni et al. (2013:5-14), presentan un estudio de usabilidad de APIs de bibliotecas realizado a partir de consultas a 25 programadores (incluidos estudiantes, investigadores y profesionales). Duala-Ekoko y Robillard (2012:266-276), encuestando a la 20 programadores, buscan identificar los tipos de preguntas que los desarrolladores se formulan cuando trabajan con APIs desconocidas y comprender la dificultad que pueden encontrar en hallar las respuestas. Identificaron veinte tipos diferentes preguntas. Uddin y Robillard (2015:67-75) realizan un estudio exploratorio sobre la experiencia de los desarrolladores con la documentación, considerando los beneficios y defectos de los ejemplos de documentación de las APIs. La encuesta se realizó 47 desarrolladores, 15 arquitectos, 3 consultores, 3 gerentes y un tester de 2 laboratorios de IBM Canadá. Robillard (2009:27-34) recopila información sobre las experiencias de los desarrolladores en el aprendizaje de las API. Específicamente, identifica sus áreas de interés y los temas que consideran adecuados para una investigación detallada. El estudio se apoyó en una encuesta a 83 desarrolladores.
El trabajo presenta un estudio que consistió en una encuesta a desarrolladores de aplicaciones que utilizan APIs web, con el fin de recolectar información sobre su uso en la Argentina, principalmente. Se centró en conocer los problemas que se generan con su uso, las herramientas que utilizan los desarrolladores para solucionarlos, los recursos disponibles que consultan habitualmente, entre otras cuestiones. Considerando la clasificación de Wohlin et al (2012), la encuesta que se ha realizado es de tipo exploratorio, con el propósito de constituirse como un estudio previo que servirá de base para realizar otros trabajos más específicos próximamente.
La encuesta consistió en 19 consignas, de las cuales 17 requerían respuestas cerradas y 2 abiertas orientadas a recolectar opiniones y experiencias personales. La encuesta estuvo disponible desde 01/04/2021 hasta el 31/05/2021.
La muestra responde a un esquema de muestreo no probabilístico (la selección de participantes se realiza en un orden no aleatorio). Dentro de los tipos de técnicas de muestreo no aleatorio, según Fowler (2013) y Kasunic, (2005), se aplicó el muestreo de conveniencia: los sujetos se seleccionan en función de la accesibilidad. Algunos ejemplos son la utilización de redes de contactos existentes o el acceso a grupos de interés donde hay sujetos disponibles que están claramente interesados en el tema de la encuesta.
Los encuestados son desarrolladores de empresas y organizaciones adheridas a la Cámara de la Industria Argentina de Software (CESSI) ya que las organizaciones allí nucleadas están consolidadas en la industria y son conocidas en dicho medio (aunque, probablemente, solo un subconjunto de estas empresas se dedique al desarrollo de aplicaciones que utilizan APIs web). También se incluyeron usuarios de la red social LinkedIn y la plataforma GitHub, identificados mediante una búsqueda específica, filtrando por “desarrolladores de Argentina” y “con conocimientos orientados a desarrollo de software”. La solicitud de participación en la encuesta se realizó por correo electrónico.
Las consignas se tomaron de RapidAPI, (Chaturyedi et al., 2021:137-148), (Li et al., 2013:300-307) y (Fokaefs et al., 2011:49-56). De manera similar, la lista original de dominios y el listado de APIs Web más utilizadas surgió de estudios preliminares realizados sobre el catálogo de programmableWeb . Para las consignas asociadas a los tipos de cambios que se presentan por la evolución de las APIs, problemas en tiempo de ejecución y los relacionados con la usabilidad, se consideraron los trabajos de Chaturyedi et al (2021:137-148), Li et al (2013:300-307) y Fokaefs et al (2011:49-56), en los cuales pudieron identificarse diferentes cambios vinculados a APIs REST, RESTfull, SOAP Service, Web Service, entre otros.
El cuerpo de la encuesta, descripta en el Anexo, está conformada agrupando las preguntas en respuesta a las consignas planteadas en los objetivos del presente trabajo, relación pregunta / consigna:
Caracterización de los encuestados: consignas 1 a 4.
Responden a la P1 ¿Qué APIs web utilizan los desarrolladores en el ámbito de la República Argentina?: consignas 5 a 7.
Responden a la P2 ¿Qué herramientas y plataformas se utilizan en el desarrollo de software con APIs Web?: consignas 8 a 11.
Responden a la P3 ¿Cuáles son los problemas más habituales que se presentan al usar APIs Web?: consignas 12 a 16.
Se utilizó como herramienta para la confección y el envío del cuestionario el formulario de Google Form, servicio gratuito que permite mayor rapidez en la confección y facilita el análisis de los datos, ya que los resultados se presentan organizados y son fáciles de extraer para su posterior análisis.
Se recepcionaron 30 respuestas durante el período en el que estuvo disponible la encuesta. Luego, se procedió a analizarlas para responder a las cuestiones planteadas precedentemente. El conjunto de encuestados que utilizan APIs web tiene las siguientes características: el 40% reside en la provincia de Buenos Aires, el 13.33% en la provincia de Córdoba, el 10% en Santa Cruz, un 6,67% en Santa Fé, otro 6,67% reside fuera de la República Argentina, y el 23,31 restante se divide equitativamente entre las provincias de Chaco, Chubut, Corrientes, La Pampa, Misiones, Neuquén y San Juan (3,33% cada uno). El 70% desarrolla la actividad en un ámbito privado, un 10% realizan su trabajo en el ámbito privado y académico, otro 10% combinan la labor privada con la pública, un 6,67% solo se desarrollan en lo académico, y por último un 3,33 % en los ámbitos privado, público y académico paralelamente. Los años de experiencia se distribuyen equitativamente en los rangos de menos de 2 años, de 2 a 5 años y más de 5 años (33,33% cada uno).
En respuesta a qué APIs web utilizan los desarrolladores en el ámbito de la República Argentina, en las Figuras 1, 2 y 3 se presentan los resultados en relación con los entornos destino, los tipos de APIs y los tipos de arquitectura.
Fig. 1 – Entornos de uso de APIs
Fig. 2 – Tipos de APIs Web utilizadas
Fig. 3 – Tipos de arquitectura de APIs utilizados
En cuanto a las categorías/dominios de APIs Web que usan los desarrolladores consultados, en la Tabla 1 se consignan los resultados. Los dominios que más predominan son almacenamiento, eCommerce y búsqueda, seguidos de las categorías como pagos, mensajería y financieras. Esta tendencia está directamente relacionada con las necesidades del mercado actual y con las de las empresas respecto de “virtualizar” sus actividades.
Dominio/Categoría |
Cant. |
Dominio/Categoría |
Cant. |
|
Almacenamiento |
19 |
Transporte |
5 |
|
eCommerce |
14 |
Música |
4 |
|
Búsqueda |
12 |
Eventos |
4 |
|
Pagos |
9 |
Video |
3 |
|
Mensajería |
9 |
Viajes |
2 |
|
Financiera |
9 |
Trabajos |
2 |
|
Nube |
7 |
Guías |
2 |
|
Mapping |
7 |
Ciencia |
2 |
|
Gestión de proyectos |
7 |
Soporte |
1 |
|
Gestión de información personal |
7 |
Gubernamentales |
1 |
|
Social |
6 |
E-Sport |
1 |
|
Herramientas |
6 |
Clima |
1 |
TABLA 1: DOMINIO/CATEGORÍA DE APIS WEB MÁS HABITUALES
Para concluir, en relación con qué APIs Web son utilizadas por los desarrolladores en Argentina, se visualiza a continuación un listado de algunas que han sido incorporadas por los usuarios en sus proyectos - Tabla 2.
APIs Web |
Cant. |
Facebook API |
21 |
Google Maps API |
13 |
GitHub REST API |
12 |
YouTube Data API |
11 |
YouTube Data API |
11 |
Instagram Graph API |
9 |
Telegram bot API |
8 |
Google chat API |
4 |
Chatbots API |
3 |
OpenWater REST API |
2 |
Images API |
3 |
WordPress.com REST API |
3 |
Heroku REST API |
2 |
Amazon Product Advertising API |
2 |
Yahoo Traffic FEED API |
1 |
SKYSCANNER API |
1 |
Last.fm REST API |
1 |
TABLA 2: APIS WEB MÁS UTILIZADAS
En segundo término, se procesaron aquellas consignas relativas a qué herramientas y plataformas se utilizan en el desarrollo con APIs Web. La Tabla 3 detalla los catálogos/marketplace en los cuales los desarrolladores buscan las APIs Web. Si bien el listado contiene varios de ellos, los encuestados indicaron que utilizan también otros catálogos no precisados (“otros”). Entre los más utilizados, se encuentran Google Cloud APIs, Azure App Service y RapidAPI. Es importante aclarar que el cuestionario permitía una selección múltiple (no excluyente), y también que varios encuestados indicaron que no utilizan ninguno de ellos para la búsqueda.
Catálogo/Marketplace |
Cant. |
Otros |
17 |
Google Cloud APIs |
10 |
Azure App Service |
6 |
RapidAPI |
6 |
Ninguno |
6 |
ProgrammableWEB |
3 |
IBM API Connect |
3 |
guruApi |
2 |
Cloud Elements |
1 |
Oracle API Catalog Cloud Service |
1 |
IFTTT |
1 |
Envato API |
1 |
Prompt API |
1 |
Zapier |
1 |
TABLA 3: LISTA DE CATÁLOGOS MÁS UTILIZADOS
La Figura 4, indica las características de las APIs que importan a los desarrolladores al momento de seleccionarlas. En primer lugar, con la mayor cantidad de apariciones se encuentra la facilidad de uso, seguida por la accesibilidad y la documentación.
Fig. 4 – Características tenidas en cuenta para la selección de APIs Web
En cuanto a la utilización de herramientas la Figura 5 muestra el porcentaje de encuestados, que utilizan o no, herramientas para el manejo de APIs Web, y la Tabla 4 cuales son las más utilizadas.
Fig. 5 – Si se utilizan herramientas para el manejo de APIs Web
Herramientas |
Cant. |
Postman |
6 |
Axios |
3 |
Swagger |
3 |
Django-Rest-Framework |
2 |
Django-Channels |
1 |
Javascript Fetch Method |
1 |
Retrofit |
1 |
Spring rest framework |
1 |
GraphQL |
1 |
Python 3 |
1 |
Universal-pattern |
1 |
Bausis |
1 |
Kong |
1 |
SoapUI |
1 |
TABLA 4:HERRAMIENTAS MÁS UTILIZADAS
El tercer interrogante se asocia a los problemas más habituales que se presentan con el uso de APIs Web. Para responder a ello, se incorporaron en la encuesta preguntas dirigidas a analizar los problemas y cómo los manejan.
Los problemas más frecuentes se resumen en la Figura 6, donde se observa que los cambios asociados a la evolución de las APIs representan el mayor inconveniente, seguido por aspectos asociados a la usabilidad.
Fig. 6 – Problemas que se presentan con más frecuencia en el uso de las APIs Web
Consultados respecto de cómo resuelven los problemas que se les presentan, 28 encuestados indicaron que lo hace manualmente, 10 utilizando alguna herramienta semiautomática y solo 3 los hacen automáticamente.
Los desarrolladores también indicaron que buscan asistencia en línea para resolver los problemas, el sitio más accedido es Stack OverFlow (todos los encuestados indicaron que acceden a él), en menor medida se utilizan otros (no especificados) y también Quora y Stack Exchange –Tabla 4.
Sitios |
Cant. |
Stack OverFlow |
30 |
Otro |
13 |
Quora |
9 |
Stack exchange |
4 |
Question2Answer |
2 |
Codecall |
1 |
school |
1 |
Experts Exchange |
1 |
TABLA 5: SITIOS CONSULTADOS PARA RESOLVER PROBLEMAS
Finalmente, se analizaron las frecuencias (Muy frecuente, Frecuente, Poco frecuente o No experimentó), para ciertas consigas más específicas, relacionadas a problemas con la evolución de las APIs Web (Figura 7), problemas asociados a la usabilidad (Figura 8) o a errores en el tiempo de ejecución (Figura 9).
Fig. 7 – Frecuencia en la experimentación de problemas con la evolución de las APIs Web
Fig. 8 – Frecuencia en la experimentación de problemas con la usabilidad
Fig. 9 – Frecuencia en la experimentación de problemas en tiempo de ejecución
El tamaño de la muestra insuficiente es la principal amenaza de la validez para cualquier encuesta de Ingeniería de Software. Para mitigar esta amenaza, hemos aplicado diversos lineamientos indicados en Ghazi et al. (2019:24703-24718) como: usar redes de contactos personales; construir una muestra “por conveniencia, autoridad y credibilidad” (se indicó que es un estudio académico, de una universidad nacional, consignando en el cuestionario todos los datos de la investigación), se diseñó una encuesta breve y escasa (tipo y cantidad de consignas), se buscó ampliar la muestra a través de la técnica “bola de nieve” y el uso de contactos de GitHub. Por otra parte, observamos que el tamaño de la muestra de nuestro estudio es comparable al de otras encuestas a desarrolladores de software que usan APIs (locales o web) reportadas en la literatura, como en Espinha et al. (2014:84-93) donde la muestra fue de solo 6 participantes; en Aué et al. (2018:13-22), con una encuesta a 40 desarrolladores clientes de APIs Web, pero cuyas respuestas fueron parciales (las consignas registraron menor cantidad de respuestas); en Piccioni et al (2013:5-14) donde la muestra fue de 25 y en [12] fue de 20. Luego, tanto en Uddin y Robillar (2015:67-75) como en Robillard (2009:27-34), si bien las muestras son algo superiores (69 y 83 participantes respectivamente), en ambos casos se indica que representan menos de 10% del público convocado. Finalmente, consideramos que, aunque las encuestas de RapidAPI y SmartBear son analizadas, no son totalmente comparables con nuestro trabajo. Primero, porque estas instituciones tienen objetivos diferentes a los nuestros y, luego, porque al ofrecer diversos servicios a los desarrolladores de todo el mundo, pueden convocarlos a participar, hecho para nosotros insuperable por su alcance global. Más allá de esto, consideramos que nuestro estudio es representativo de la República Argentina: han participado desarrolladores del 50% de las jurisdicciones del país, pertenecientes a todas las regiones, con una mayor presencia de los distritos con mayor actividad económica, y con igual representación en los rangos de experiencia definidos.
Análisis de Resultados
Un análisis pormenorizado de los resultados permite exponer ciertos indicadores de relevancia, entre ellos caracterizar la población encuestada resaltando que el 60% de ellos corresponde a la región de mayor actividad económica del país (Buenos Aires, Córdoba y Santa Fé), desarrollándose en su mayoría en la actividad privada, con una distribución de rango de experiencia equitativa (entre menos de 2 años, de 2 a 5 años y más de 5 años) y combinando el entorno de desarrollo móvil y web.
Más del 60% de los encuestados usan APIs web, tanto para desarrollo de software web como móvil. Las APIs externas e internas son elegidas prácticamente en igual medida, totalizan más del 90%. Mientras que el uso de las APIs Partner facing es significativamente bajo. De manera similar, el predominio de las tecnologías REST y RestFull es claro; la diferencia con los otros tipos de arquitecturas (SOAP, GraphQL, Webhooks, etc.) es notable.
Más del 50% de los desarrolladores no usan herramientas específicas para el manejo de APIs web al desarrollar software cliente. Considerando los que sí usan y agrupadas por funcionalidad, resulta que el 33% son herramientas para pruebas (Postman, Swagger, etc.), el 20% para desarrollo de la API (Spring Rest, Dyango Rest, etc.) y solo el 17% para manejo de la API desde el cliente (Retrofit, AXIOS, etc.).
En cuanto a los catálogos o marketplace donde se buscan las APIs, los provistos por las compañías de IT globales son la preferencia. Respecto de aquellos que han indicado que no usan ninguno, puede deberse a que solo consumen APIs internas. Los criterios para seleccionar una API están bien marcados, el 66% o más se relacionan a la usabilidad de la API (facilidad, accesibilidad y documentación), entre el 35% y 51% a requerimientos no funcionales (seguridad, tecnología, fiabilidad y rendimiento). El precio no resulta ser un factor determinante.
Los dominios funcionales para los que se usan APIs web, responden a requerimientos no funcionales como almacenamiento, búsquedas y mensajería y funcionales relacionados a transacciones comerciales (eCommerce, pagos, financieras). Las APIs web más usadas son aquellas provistas por las compañías de IT globales y redes sociales más populares (Facebook, Google, Instagram, YouTube, etc.)
En cuanto a los tres tipos de problemas que se analizaron, el ítem relacionado a usabilidad y documentación resulta ser el más crítico, que los ocasionados por la evolución de la APIs o eventos ocurridos en tiempo de ejecución. Específicamente para los desarrolladores, la documentación de la API incompleta y/o ambigua y la falta de recursos como manuales, tutoriales, videos y ejemplos son resaltados como más problemáticos.
Algunas tendencias surgen del cruce de las respuestas a los diferentes interrogantes, como ser,
a) Un bajo soporte de herramientas al desarrollo de software que usa APIs, ya que el 53% no usan herramientas específicas en la etapa de desarrollo y luego el 68% cuando surgen problemas indicaron que los resuelven en forma manual. Aunque indicaron usar y conocer herramientas populares como Postman y Swagger.
b) Relación entre preferencias y problemas. Los problemas con mayor frecuencia experimentados refieren a los cambios por la evolución de las APIs (principalmente, cambios de los parámetros y los campos de las respuestas) y la usabilidad de la APIs (principalmente documentación incompleta/ambigua y falta de materiales como ejemplos, videos, tutoriales, etc.). Lo cual tiene relación con las características que consideran necesarias de la API al momento de elegirlas, facilidad y usabilidad, relegando el factor precio, de manera decisiva.
c) Aunque las opiniones y preferencias de catálogos/marketplaces, APIs, dominios y herramientas usadas es diversa, se registra un consenso total en cuanto a la herramienta usada para resolver problemas, ya que el 100% de los encuestados acude a Stack Overflow.
Comparación con Trabajos Relacionados
En relación con otros trabajos empíricos basados en encuestas a desarrolladores, señalamos que en el caso de RapidAPI y SmeartBear, recaban información de los desarrolladores de APIs o proveedores, mientras nuestro estudio recopila información de los clientes o consumidores. Sin embargo, algunas comparaciones se pueden establecer, referentes al primer interrogante. En este sentido la encuesta realizada por SmartBear a desarrolladores de APIs, el 72% indicó que eran las APIs internas y externas, y otro 21% solo internas. En RapidAPI a la pregunta similar, el 75,3% indicó las internas, el 47% externas y el 34,6% Partner Facing. Es decir, las APIs internas son las más desarrolladas. En este factor se observa una coincidencia parcial con nuestro estudio. En cuanto al estilo arquitectónico, en RapidAPI la tendencia y popularidad está marcada por REST, aquí la coincidencia es total. A partir de estas encuestas, contrastar la opinión de los desarrolladores de APIs con los desarrolladores clientes o consumidores de APIs es posible en algunos ejes: a) según SmartBear consideran exitosa la APIs en función de la performance y la disponibilidad. Mientras que estos no son los motivos principales por los que nuestros encuestados elijen una API (facilidad, accesibilidad y documentación). b) Siendo además la usabilidad el principal problema de los desarrolladores de aplicaciones consumidoras, para SmartBear, el principal desafío a futuro es la estandarización y luego el control de versiones. c) los encuestados de SmartBear vinculan la calidad de la API, primero, al tiempo de respuesta en entregar resultados actualizados y, luego, a la documentación de la API. En nuestros resultados, aparecen estos mismos factores pero en distinto orden de prioridad, d) En cuanto a los factores más importantes para lograr una documentación exitosa de la API, se indicó: adicionar más ejemplos, luego código de estados y errores, autenticaciones y mensajes de error, lo cual se alinea con lo expresado en nuestra encuesta. e) RapidAPI indaga además en herramientas y técnicas de pruebas de las APIs y cuestiones de la seguridad, y en SmartBear los resultados indican que las herramientas para el desarrollo de APIs buscadas deben ser fáciles de usar y sencillas (usabilidad). Como ya indicamos, según los resultados que hemos recolectado, los desarrolladores que consumen APIs no hacen uso de herramientas específicas o lo hacen en forma manual.
La encuesta a proveedores de APIs de (Stocker and Zimmermann, 2021:174-193) en relación a los cambios y evolución de APIs web, no se alinea directamente con los resultados de SmartBear y RapiAPI, sin embargo se relaciona mejor con nuestros hallazgos, en tanto la usabilidad y mantenibilidad son preocupaciones más importantes que el rendimiento y la escalabilidad.
En la encuesta a consumidores de APIs de (Espinha et al., 2014:84-93) arrojó como resultado que el principal problema para los desarrolladores es el cambio/evolución de las APIs. Mientras que nuestro estudio muestra como principal problema la usabilidad de la API, coincidiendo de esta manera con las percepciones de los encuestados en (Aué et al., 2018:13-22).
Recomendaciones y Trabajos Futuros
Luego de la caracterización del uso de las APIs web en Argentina, las conclusiones más importantes a las que llegamos con este estudio, exploratorio y descriptivo, nos permiten sugerir algunas recomendaciones.
La usabilidad de la API fue considerada uno de los principales obstáculos para los consumidores, a la vez que se observaron diversas deficiencias (como frecuente y muy frecuentes) en relación a esta propiedad (documentación ambigua e incompleta, no están disponibles diversos tipos de recursos, errores no documentados o mal documentados, cambios y modificaciones de las APIs no documentados). Estos podrían ser los motivos por los cuales todos los desarrolladores acuden a Stack Overflow. Se recomienda a los proveedores de APIs elaborar mejores recursos de documentación (tutoriales, videos, ejemplos, guías, webinars, preguntas frecuentes, etc.), completos y claros. Además, incluir nuevos tipos de soporte como los asistentes virtuales en línea que rápidamente permiten despejar dudas y resolver consultas y generadores de tickets. Para los investigadores, es necesario proponer métodos para generar documentación de buena calidad, pero también métodos que permitan actualizar la documentación cuando se modifican las APIs, de manera automática o semiautomática. Esto ayudará y facilitará en gran medida la tarea de los proveedores de APIs web. El análisis de las entradas en los foros, con técnicas de minería de datos e inteligencia artificial, puede identificar problemas que la documentación no cubre.
Un dato que no se puede soslayar, es el alto nivel de trabajo manual para los desarrolladores asumen cuando consumen APIs web o deben resolver problemas asociados a las mismas en el código. A diferencia de las APIs locales, las herramientas son insuficientes para identificar incompatibilidades, refactorizar, migrar código o realizar distintos tipos de pruebas, entre otros. Se requiere investigar y desarrollar kits de desarrollo de software (SDK), editores en línea (plantillas y formularios), interfaces de línea de comandos (CLI) o consolas, herramientas de prueba y herramientas para gestión que se integren a otras herramientas de desarrollo, para automatizar las actividades del desarrollo de los clientes/consumidores de APIs.
Dado el preponderante dominio de las APIs web que responden a la arquitectura REST, direccionar las mejoras a este segmento permitiría cubrir una mayor demanda.
Por último, sería conveniente alinear y conectar los desafíos y preocupaciones de los productores de APIs, con las reales necesidades y problemas de los desarrolladores de aplicaciones clientes / consumidoras. Las actividades de gestión y gobierno de APIs, que desde plataformas (Marketplace u otros) se ofrecen incluyen capacidades para la recolección, procesamiento y publicación de analíticas, en relación con indicadores de rendimiento (latencia, etc.) y de uso (usuarios por API, cantidad de llamadas, etc.). Por lo tanto, sería ventajoso incorporar en estas analíticas indicadores relacionados a la usabilidad de las APIs.
Como trabajo futuro, se planifica continuar este estudio exploratorio con la realización de entrevistas en profundidad a desarrolladores ya encuestados que manifestaron su voluntad de participar en una nueva etapa. También se prevé la realización de grupos focales sobre temas específicos derivados.
1. Lugar de residencia (Cerrada)
2. Ámbito en el que desarrolla la actividad (Cerrada)
3. Experiencia en el desarrollo de Aplicaciones utilizando APIs Web (Cerrada)
4. ¿En qué entorno ha usado APIs Web? (Cerrada)
5. ¿Qué tipos de APIs Web utiliza o utilizó? (Cerrada)
6. ¿Qué tipo de APIs Web utiliza o ha utilizado? (Según su arquitectura) (Cerrada)
7. ¿En función de cuáles de estas características selecciona las APIs Web que utiliza? (Cerrada)
8. ¿Utiliza herramientas específicas para el manejo de las APIs Web? (Cerrada)
9. En caso Afirmativo ¿Qué herramientas específicas utilizó o utiliza? (Abierta)
10. ¿En qué catalogo/Marketplace busca APIs Web? (Cerrada)
11. ¿Utilizó alguna de las siguientes APIs web? (Cerrada)
12. Con que frecuencia ha experimentado:
▶ Cambios por la evolución de las APIs Web
▷ Cambios en la URL (incluye cambios en el punto final),
▷ Cambios de Parámetros (incluye: cantidad, tipo, identificador, restricción (obligato rio-opcional, rangos esperados),
▷ Cambios de los campos incluidos en las respuestas (incluye: cantidad, tipos, identificadores, restricciones, rangos devueltos),
▷ Cambios en las políticas de seguridad (incluye: cambios de autoridad, autentificación),
▷ Cambios en las precondiciones/postcondiciones de los métodos]
13. Problemas relacionados a la Usabilidad de la API
a. La documentación (especificación) de la API es ambigua y/o incompleta,
b. No están disponibles manuales, tutoriales, videos, ejemplos de uso,
c. Errores no documentados o mal documentados,
d. Los cambios o modificaciones de la API no están documentados o la documentación es deficiente]
14. Problemas en tiempo de ejecución
a. Los cambios o modificaciones de la API no están documentados o la documentación es deficiente,
b. Respuestas vacías (la consulta no arroja resultados),
c. Demora en las respuestas (se excede el tiempo de espera de la respuesta)
15. ¿Ha experimentado algún otro problema/inconveniente al utilizar APIs Web? (Abierta)
16. ¿Cómo resuelve habitualmente los problemas/inconvenientes que puedan presentarse al utilizar APIs Web? (Cerrada)
Aué, J. Aniche, M., Lobbezoo, M., & van Deursen, A. (2018) “An Exploratory Study on Faults in Web API Integration in a Large-Scale Payment Company”. In ICSE-SEIP ‘18: 40th International Conference on Software Engineering: Software Engineering in Practice Track (pp. 13-22), Association for Computing Machinery (ACM). https://doi.org/10.1145/3183519.3183537
Brito, A., Valente, M.T. , Xavier, L. (2020) “You broke my code: understanding the motivations for breaking changes in APIs,” Empir Software Eng 25, 1458–1492.
Businge, J., Serebrenik, A. and van den Brand, M. (2013) “Analyzing the Eclipse API Usage: Putting the Developer in the Loop,” 2013 17th European Conference on Software Maintenance and Reengineering, pp. 37-46, doi: 10.1109/CSMR.2013.14.
Chaturvedi, A., Tiwari, A., Binkley, D. and Chaturvedi, S. (2021) “Service Evolution Analytics: Change and Evolution Mining of a Distributed System,” IEEE Transactions on Engineering Management, 68(1), 137–148, 2021 https://doi.org/10.1109/tem.2020.2987641
De, B. (2017)“API Management: An Architect’s Guide to Developing and Managing APIs for Your Organization,” 1st edn. Apress, Berkeley.
Document, Carnegie-Mellon Univ Pittsburgh PA Software Engineering Inst.
Duala-Ekoko, E. and Robillard, M.P. (2012) “Asking and answering questions about unfamiliar APIs: An exploratory study,” 2012 34th International Conference on Software Engineering (ICSE), pp. 266-276, doi: 10.1109/ICSE.2012.6227187.
Espinha, T., Zaidman, A. and Gross, H. (2014) “Web API growing pains: Stories from client developers and their code,” 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering (CSMR-WCRE), pp. 84-93, doi: 10.1109/CSMR-WCRE.2014.6747228.
Fokaefs, M. , Mikhaiel, R., Tsantalis, N., Stroulia E. and Lau, A. (2011) “An Empirical Study on Web Service Evolution,” 2011 IEEE International Conference on Web Services, pp. 49-56, doi: 10.1109/ICWS.2011.114.
Fowler, F. J. (2013) “Survey research methods,” Sage publications.
Ghazi, A. N. , Petersen, K., Reddy and Nekkanti, H. (2019) “Survey Research in Software Engineering: Problems and Mitigation Strategies,” in IEEE Access, vol. 7, pp. 24703-24718, 2019, doi: 10.1109/ACCESS.2018.2881041.
Kasunic, M. (2005) “Designing an effective survey,” Technical report, DTIC
Li, J., Xiong, Y., Liu, X. and Zhang, L. (2013) “How Does Web Service API Evolution Affect Clients?,” 2013 IEEE 20th International Conference on Web Services, pp. 300-307, doi: 10.1109/ICWS.2013.48.
Piccioni, M., Furia, C.A. and Meyer, B. (2013) “An Empirical Study of API Usability,” 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 5-14, doi: 10.1109/ESEM.2013.14.
RapidAPI, Developer Survey 2020 Report. (2020) RapidAPI - The Next Generation API Platform.
Robillard, M.P. (2009) “What Makes APIs Hard to Learn? Answers from Developers,” in IEEE Software, vol. 26, no. 6, pp. 27-34, doi: 10.1109/MS.2009.193.
Sawant, A.A., Aniche, M., van Deursen, A. and Bacchelli, A. (2018) “Understanding Developers’ Needs on Deprecation as a Language Feature,” 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE), pp. 561-571, doi: 10.1145/3180155.3180170.
SmartBear. (s. f.). (2020) State of API 2020 Report, Software Testing, Monitoring, Developer Tools, SmartBear. https://smartbear.com/resources/ebooks/the-state-of-api-2020-report/
Stocker, M. and Zimmermann, O. (2021) “From Code Refactoring to API Refactoring: Agile Service Design and Evolution”, Conferencia Symposium and Summer School on Service-Oriented Computing Pages 174-193 - Editor Springer, doi 10.1007/978-3-030-87568-8_11.
Tan, W., Fan, Y., Ghoneim, A., Hossain, M. A. and Dustdar, S. (2016) “From the Service-Oriented Architecture to the Web API Economy,” IEEE Internet Computing, 20(4):64–68, 2016.
Uddin, G. and Robillard, M.P. (2015) “How API Documentation Fails,” in IEEE Software, vol. 32, no. 4, pp. 68-75, doi: 10.1109/MS.2014.80.
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M. C., Regnell, B. and Wesslén, A. (2012) “Experimentation in software engineering,” Springer Science & Business Media.
Colaboración Académica |
||||||||||||||
Nombres y Apellidos del autor |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
Sandra Casas |
x |
x |
x |
x |
|
x |
x |
x |
x |
x |
x |
x |
x |
|
Marcela Constanzo |
x |
x |
x |
x |
x |
x |
x |
|||||||
Graciela Vidal |
|
x |
|
|
x |
x |
|
|
||||||
Diana Cruz |
x |
x |
x |
1-Administración del proyecto, 2-Adquisición de fondos, 3-Análisis formal, 4-Conceptualización, 5-Curaduría de datos, 6-Escritura - revisión y edición, 7-Investigación, 8-Metodología, 9-Recursos, 10-Redacción - borrador original, 11-Software, 12-Supervisión, 13-Validación, 14-Visualización.