We are cranking up the volume on the number of APIs we are bench-marking in the Streamdata.io API Gallery right now. After we profile an API using the OpenAPI specification, obtain an application token for an API, we plug the API into our API bench-marking API to establish a StreamRank score. We poll an API for 24-48 hours to establish a benchmark for how rapidly information changes on a platform, to help us understand the opportunity for providing real-time streams on top of an existing API. Our challenge with this bench-marking is identifying the right set of parameters to pass to an API, providing the appropriate set of inputs.
Every API will have a different number of parameters you can provide to adjust the types of responses you will get. Some parameters will return very few results, while others will return a large volume response. Our challenge is to find just the right parameter or set of parameters that will best represent the API. Of course, we want an API to score as high as possible so that we can make the case for providing a streaming API, but we also want to represent the API and the information it serves up in the best possible light. Introducing a significant amount of work at profiling and bench-marking time for each API we are adding.
When you profile an API like Stack Exchange we want to choose a technology topic or programming language that best represents the community, as well as being actively producing questions and answers. When working with Github, the organization or users we profile and benchmark will make all the difference in producing the best possible StreamRank. While some API parameters will be based upon topic or user, others are based on the time of day. If we are profiling the New York Times or the Guardian, we have to make sure we benchmark the APIs on a weekday during business hours, otherwise, we get lower than expected results. Demonstrating the important role API parameters, and their enumerated values play in defining the value an API brings to the table, as well as the opportunity for delivering real-time streams on top of an existing API.
This challenge bench-marking APIs represents the real-time, event-driven opportunity that exists out there. The new items added to APIs represent the events, while each parameter and unique value represents an opportunity to subscribe to the events occurring around a specific topic. Painting a very different picture of how we can consume APIs in an event-driven landscape, over just living a request and response driven reality. We aren’t saying event-driven will replace the request and response paradigm, but feel it will compliment it. It provides a way to understand what is changing each minute or day on a platform, while allowing us to cut out the chatter and noise, and subscribe to only the changes that matter to us. Elevating API parameters to be more prominent channel subscriptions, rather than some possible choices you may or may not make behind the scenes.