What most API documentation lacks is one thing.<p>Examples.<p>Real, working, copy-n-paste examples.<p>While I prefer the swagger format, we use Blueprint at work because it's trivial to include an actual example request or response as part of the documentation.<p>Sure, schema helps, but having a spot to just lay out an example request or response is really important.<p>Another thing: often, one must perform prerequisite steps before making a call to a given API method. Eg - you must have booked a flight before checking in. The context surrounding how an API fits into its use-cases is as important as the API itself.
Next will come the API spec parsers to automate client code generation. Those will break on the first vendor specific extension. Vendors will put in extensions for security, pre and post request action guidance, etc. This will cause vendor specific client code generators to be created. The specification will take a long time to get updated as each vendor will want their extensions in the core specification. As a result even more extensions will be created.<p>We have seen this cycle before with WSDL and XML Schema, etc. I hope we have learned from our mistakes and don't go down the same path to have history repeat itself.<p>Personally I like the idea of an API Specification but the practical use has been a let down so far.
In this page: <a href="https://github.com/OAI/OpenAPI-Specification/tree/OpenAPI.next" rel="nofollow">https://github.com/OAI/OpenAPI-Specification/tree/OpenAPI.ne...</a>
The link to current specification is broken<p>Review the [current specification]. The human-readable markdown file is the source of truth for the specification.
The real major Open API I always think is required is an Open API allow me to interact with any part of a website so people can finally build assistive technology based on API rather than parsing some website's DOM that you will likely never be able to parse out correctly from version to version. If the website exposes a "REST" specification how to interact with the pages, then we can really build a website visual impaired can finally used. Just my rant after trying to build one and realized how crazy it was to learn to work with DOM.
Too little, too late.<p>Thrift, gRPC, YaRPC, etc. are all RPC frameworks with strong typing and binary transports. They are still immature, but as such frameworks mature and support more languages, they will eat the lunch of any project trying to build on REST.
Does anybody have any recommendations for a Swagger-style documentation toolchain for REST APIs? I mean actual REST, not this weird anti-REST where you predefine fixed URI structures up front.<p>REST APIs are based around media types, not URI structures. Unfortunately, tools like Swagger are based around URI structures, which shouldn't be in REST API documentation at all. It makes trying to find good tooling for REST APIs difficult when people say "just use Swagger" and similar.