API-Miner: an API-to-API Specification Recommendation Engine
Sae Young Moon, Gregor Kerr, Fran Silavong, Sean Moran · 2024
When designing a new API for a large project, developers need to make smart design choices so that their code base can grow sustainably. To ensure that new API components are well designed, developers can learn from existing API components. However, the lack of standardized methods for comparing API designs makes this learning process time-consuming and difficult. To address this gap we developed API-Miner. API-Miner retrieves relevant specification components written in OpenAPI. API-miner presents several significant contributions, including: (1) novel methods of processing and extracting key information from OpenAPI specifications, (2) innovative feature extraction techniques that are optimized for the highly technical API specification domain, and (3) a novel log-linear probabilistic model that combines multiple signals to retrieve relevant and high quality OpenAPI specification components given a query specification. We evaluate API-Miner in both quantitative and qualitative tasks and achieve an overall of 91.7% recall@1 and 56.2% F1, which surpasses baseline performance by 15.4 percentage points (pp) in recall@1 and 3.2 pp in F1. Code is available at: https://github.com/jpmorganchase/api-miner.