I’m investigating automatic REST API SDK generation options and I’d like your help narrowing things down. We, at Power BI, have a REST/JSON API and our documentation is up on apiary, which supports “API Blueprint”, not Swagger. We want to accommodate as many languages and technologies as possible, so the first then we are going to do is convert our API Blueprint to Swagger (using apib2swagger) and publish our swagger.json file so you all can generate your own SDKs from it. We’ll then decide which SDK generation tools to use and make all of the SDKs available via GitHub and the major packages managers (npm, bower, nuget, etc).
Here’s a table of the options I was able to discover on my own. Please have a look and let me know if I missed any or feel free to tell me about your experiences with any of them.
AutoRest | APIMatic | Alpaca | REST United | Swagger CodeGen | ||
---|---|---|---|---|---|---|
Price | Free | $500/Year | Free | $600/year | Free | |
Languages | C# | X | X | X | X | |
TypeScript | X | X | ||||
Node | X | X | X | X | X | |
AngularJS | X | X | ||||
JavaScript | X | X | ||||
Java | X | X | X | X | ||
Java for Android | X | X | X | |||
Java for JVM | X | |||||
Ruby | X | X | X | X | X | |
PHP | X | X | X | X | ||
Python | X | X | X | X | X | |
Swift | X | |||||
Objective-C | X | X | X | |||
ActionScript | X | X | ||||
Scala | X | X | ||||
Tizen | X | |||||
SpringMVC | X | |||||
Go | X | X | ||||
Clojure | ||||||
Rust | ||||||
Features | Logging | X | ||||
Tracing | X | |||||
Retries | X | |||||
Authentication | X | X | X | ? | ||
Async Signatures | X | X | ||||
CodeGen Service | X | |||||
Import Formats | API Blueprint | X | ||||
RAML | X | |||||
Google API Discovery | X | |||||
IODocs | X | |||||
WADL | X | |||||
Swagger | X | X | X | X | ||
YAML | ||||||
JSON Schema |
Jon