Skip to main content

Syntactic and Semantic Analysis of REST, GraphQL, and gRPC APIs to Assess their Linguistic Design Quality

Application Programming Interface (API) is a set of rules and protocols that allows one software application to interact with another. They enable different software systems to communicate with each other and provide a way to integrate diverse services and functionalities. There are many types of APIs (e.g. REST, GraphQL, gRPC, etc.) and each serves specific purposes and use cases. The linguistic design quality of APIs is crucial for effective communication between software components. The presence of poor linguistic design may directly hinder the developer's productivity, system reliability, and overall user satisfaction. To assess such poor linguistic designs we implemented detection algorithms using detection heuristics from literature. Our detection algorithms can detect poor linguistic design more accurately than compared to state-of-the-art systems. We evaluated more than 3000 endpoints of 43 APIs (REST, GraphQL, and gRPC). Our findings suggest poor linguistic design in all of the REST, GraphQL, and gRPC APIs and exist slightly higher in REST than in GraphQL and gRPC.   
Submitted by:
Krishno
Dey
Department / Faculty:
Faculty of Computer Science