Working to Establish a Complete OpenAPI Spec for Leading APIs
APIs, love them or hate them, we all need them. Better documentation always helps. Here is one effort in that direction.
Join the DZone community and get the full member experience.Join For Free
I am always working as hard as I can to develop as complete as possible OpenAPI Specs for the APIs that I monitor. I call this my API Stack research. When possible, in addition to mapping out API operations for an API using APIs.json, I also work to create a machine readable OpenAPI Spec for each API.
In most cases I only have the time to profile the surface area of an API -- the host, base URL, all properties, and required parameters. I don't always have time to reach what I'd consider a complete API definition. This is something that takes authenticating, achieving a successful request and response for each endpoint present, then generating JSON schema for each response—this takes a significant amount of effort to do properly.
Thankfully, in addition to investing in this work myself, I am also getting the assistance of my partners like Dream Factory, who are interested in getting specific API definitions completed, and make sure they have complete API definitions for the leading APIs out there today. Here is a handful of them I'm working on producing this week:
|AngelList - Working to define all the endpoints for the startup, and investment platform API.|
|Alchemy - Working to define all the endpoints for the machine learning API.|
|Century Link - Working to define all the endpoints for the cloud computing API.|
|Docomo - Working to define all the endpoints for the telco, image, machine learning API.|
|Stipe - Working to define all the endpoints for the payment API.|
|Twilio - Working to define all the endpoints for the voice & messaging API.|
|Verizon - Working to define all the endpoints for their Internet of Things (IoT) API.|
I've assigned each API its own Github repo to store the OpenAPI Specs, as well as indexing them using APIs.json, and facilitating the conversation using the Github issues. My goal is to streamline the process of making sure all the endpoints are represented, and a complete definition for both the request and the response exists--while keeping an eye on the future, in a potentially crowdsourced, Github-centric way.
If there is an API you'd like to see get completed, let me know. I am happy to prioritize other APIs after this. My goals it to focus a dedicated amount of time each week to this, but unfortunately this takes money, so I'm looking to get investment from partners, and the general community to help make sure happens. If you want to help, feel free to ping me, and let me know what you need.
Published at DZone with permission of Kin Lane, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.