En inglés
In this new era where web services are trending and businesses constantly develop and expose APIs that can be used by third parties, finding one which fits a functional requirement is a daunting task. For this reason, websites such as ProgrammableWeb and APIs.guru offer a directory of API definitions that can be filtered and searched by developers. However, searching for APIs that conform to a requirement on those platforms is still a manual task, and searches are based on the inclusion or exclusion of query words in an API description that does not provide relevant results. For this reason, we have explored the application of word embeddings in the problem of API recommendation using Word2Vec, FastText and GloVe algorithms, as well as pre-trained domain-general and software engineering embeddings. We have constructed a dataset from APIs.guru and retrieved services descriptions to obtain their embeddings and calculate their similarity with a given query embedding. To this end, we created ten test queries with their relevant APIs using a subset of the original dataset. With a recall at 10 recommendations of 69.8% and a nDCG at 10 of 81.4%, we have obtained promising results which demonstrate embeddings can alleviate developers' searches for relevant APIs.
En español
En esta era en la que los servicios web son tendencia y las empresas desarrollan y exponen constantemente APIs que pueden ser utilizadas por terceros, encontrar una API que se ajuste a un requisito funcional es una tarea abrumadora. Por esta razón, portales como ProgrammableWeb y APIs.guru ofrecen un directorio de definiciones de APIs que los desarrolladores pueden filtrar y buscar. Sin embargo, la búsqueda de APIs que cumplan con un requisito en esas plataformas sigue siendo una tarea manual, y las búsquedas se basan en la inclusión o exclusión de palabras clave en una descripción de API que no proporciona resultados relevantes. Por esta razón, hemos explorado la aplicación de word embeddings para recomendar APIs utilizando los algoritmos Word2Vec, FastText y GloVe, así como embeddings pre-entrenados de dominio general y específicos a la ingeniería de software. Construimos un dataset de APIs a partir de APIs.guru y recuperamos descripciones de servicios para obtener sus embeddings y calcular su similitud con el embedding de una consulta determinada. Para ello creamos diez consultas de prueba con sus APIs relevantes utilizando un subconjunto del conjunto de datos original. Con una exhaustividad en 10 recomendaciones del 69,8% y un nDCG en 10 recomendaciones del 81,4%, hemos obtenido resultados prometedores que demuestran que los word embeddings pueden dar soporte a los desarrolladores a la hora de buscar APIs relevantes.