{"Alpha"}

Adding A New Alpha Endpoint To Explode API OADF Into Separate Files For Each Unique Endpoint

I come across Open API Definition Format (OADF) files for APIs fairly regularly, and almost all of them define a companies APIs as a single definition. I prefer having all the unique endpoints for a company or platform, available as single OADF files, giving me granular access to the smallest unit of API compute possible.

An example of this is with the OADF file I currently have for Twitter. It is a single OADF definition, but actually has 17 separate endpoints available such as account, lists, geo, users, etc. I want the entire Twitter API defined using OADF files, but for my system I want a separate file for each possible unit of compute.

When I articulate this to many API architects, they almost aways state how much redundancy or extra work this is. To me, it is worth it to have everything broken up into the smallest possible unit, so I can compose, orchestrate, and remix with other units of compute that I have compiled from other 3rd party APIs, or even my own APIs. 

To help support this vision, I created a new endpoint today for my API API--/api/apisjson/explode/oadf/. To use, all I do is pass it a valid APIs.json collection of APIs, and the endpoint loops through all available APIs, and their properties looking for valid OADF files. When it finds an OADF file it breaks up all entries by the first folder value for each endpoint. 

It then assembles a collection of separate OADF files for each unique endpoint, which for the Twitter API gave me 17 separate OADF files, one for each meaningful unit of compute for Twitter. This APIs.son, OADF "explode" API will not work for all API definitions, because some aren't clearly define resources like Twitter is, but it will still help me build my catalog of API resources.

The endpoint is still very alpha, but is a good start. I am using it to further define the default API stack for API Evangelist operations, and once I'm done, I will continue to refine as I continue to build out my entire API Stack.