API-Spector: an API-to-API Specification Recommendation Engine
AI-generated Key Points
- API-Spector is a recommendation engine that helps developers design sustainable APIs
- It retrieves relevant OpenAPI specification components from public or internal databases
- It addresses the lack of standardized methods for comparing API designs
- Innovative feature extraction techniques are used, optimized for the highly technical API specification domain
- Novel methods of processing and extracting key information from OpenAPI specifications are used
- Natural language text similarity is used to characterize endpoints based on descriptions and summaries found in the operations section
- Pre-trained language models such as BERT and SENT-BERT are used to obtain contextual representations of the text
- Keyword tokens are obtained through pre-processing the entire text which generates TF-IDF and PPMI scores for these keywords allowing representation of domain-specific terms not well represented in pre-trained language models.
- The enriched text features obtained by combining both approaches consistently outperform other text features across all evaluation tasks.
- User studies evaluating API-Spector's usefulness achieved best performance with 0.690 recall, 0.475 precision, and 0.562 F1 scores compared to baseline models.
- Overall, API-Spector provides guidance to accelerate development processes thoughtfully designed APIs that promote code maintainability and quality while allowing developers to learn from existing established examples and potentially identify redundancies in their work.
Authors: Sae Young Moon, Fran Silavong, Sean Moran
Abstract: 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 method for comparing API designs makes this learning process time-consuming and difficult. To address this gap we developed the API-Spector, to the best of our knowledge one of the first API-to-API specification recommendation engines. API-Spector retrieves relevant specification components written in OpenAPI (a widely adopted language used to describe web APIs). API-Spector 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-Spector 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% in recall@1 and 3.2% in F1. Overall, API-Spector will allow developers to retrieve relevant OpenAPI specification components from a public or internal database in the early stages of the API development cycle, so that they can learn from existing established examples and potentially identify redundancies in their work. It provides the guidance developers need to accelerate development process and contribute thoughtfully designed APIs that promote code maintainability and quality.
Ask questions about this paper to our AI assistant
You can also chat with multiple papers at once here.
Assess the quality of the AI-generated content by voting
Why do we need votes?
Votes are used to determine whether we need to re-run our summarizing tools. If the count reaches -10, our tools can be restarted.
Similar papers summarized with our AI tools
Navigate through even more similar papers through atree representation
Look for similar papers (in beta version)
By clicking on the button above, our algorithm will scan all papers in our database to find the closest based on the contents of the full papers and not just on metadata. Please note that it only works for papers that we have generated summaries for and you can rerun it from time to time to get a more accurate result while our database grows.
Disclaimer: The AI-based summarization tool and virtual assistant provided on this website may not always provide accurate and complete summaries or responses. We encourage you to carefully review and evaluate the generated content to ensure its quality and relevance to your needs.