Microservice architecture has become the default way of implementing large information systems. Microservices usually consist of multiple REST API endpoints, over which they communicate. This can amount to systems having over tens of thousands of REST endpoints, which developers can not keep track of. We will present a REST API search engine prototype, which automatically discovers endpoints and offers advanced search options.
The engine uses a combination of WordNet lexical database, endpoint importance and parameter weight calculation to achieve optimal search results. We present a novel approach for importance calculation, which uses service discovery and HTTP request metrics, gathered from Consul and HTTP clients respectively. This weighted combination of methods manages 87 % precision on the top result.
We also implemented a different way of searching by continuously selecting groups of endpoints. The groups are formed from database foreign key connections, semantic information from tables and columns and a network, based on Git contributions. The results from this approach yielded a 61 % accuracy after the first division compared to 38 % that we got from the method, which only uses semantic endpoint information. We evaluated both types of searching using real life query examples in a system consisting of 3350 API endpoints.
|