The increasing number of web APIs registered in service sharing communities (e.g., http://ProgrammableWeb.com that provides a platform benefiting the social interactions between different software developers) has provided a promising way to quickly build various apps with diverse functions. Generally, an app developer can manually discover, select, and compose a set of appropriate web APIs to build a new app satisfying the developer's functional and nonfunctional business requirements, economically and conveniently. However, the above manual web APIs selection process is usually time-consuming and cumbersome as most app developers often do not have much background knowledge of candidate web APIs. Moreover, the manually selected web APIs cannot always guarantee to be integrated successfully as the compatibilities between different web APIs are often varied and not validated. In view of these challenges, we define a weighted APIs correlation graph (W-ACG) in this paper to model the APIs functions and compatibilities. Furthermore, we propose a novel web APIs recommendation approach named Keywords-based and Compatibility-aware APIs Recommendation (K-CAR) based on the defined W-ACG. Through analyzing the input keywords describing the functions expected by an app developer, K-CAR can return the app developer a set of optimal APIs that are not only functional-qualified but also compatibility-guaranteed. Extensive experiments are deployed on 18 478 real-world web APIs and 6146 real-world apps to evaluate the usefulness and efficiency of K-CAR.
- APIs recommendation
- dynamic programing (DP)
- keyword search
- weighted API correlation graph (W-ACG)