| Category | Title | Swagger | RAML | API Blue Print |
| Summary | Pros | High adoption rate, good code-level tooling, large and active community of users and supporters, greater support for multiple languages | Good online design tools and mature supporting infrastructure, seemingly useful advanced constructs, human readable format, hight industry backing | Good online design tools, good community involvement, easy to understand, simple to write |
| Summary | Cons | Bottom-up, lacks advanced constructs for metadata | Very new to the game, low adoption, lacks code-level tooling, still unproven long-term | New to the game, low adoption, lacks advanced constructs and code-level tooling, complex installation |
| Basic | Primary Sponsor | SmartBear | MULESOFT | APIARY |
| Basic | Format | JSON | YAML | MARKDOWN |
| Basic | Initiatives towards Industry Standard | Open API Initiative (OAI) - Has announced an open governance model around the Swagger Specification under the Linux Foundation. | Not Availaible | Not Availaible |
| Basic | Open Source Inititives | The Swagger page claims itself to be 100% open source software. Starting January 1st 2016 the Swagger Specification has been donated to to the Open API Initiative (OAI) and has been renamed to the OpenAPI Specification. | RAML is backed by a large open source community providing hundreds of pre-built, customizable tools. | API Blueprint is completely open sourced under the MIT license. |
| Basic | Industry Backing | Reverb, 3Scale, Apigee | Mulesoft, SOA, AngularJS, Intuit, Box, PayPal, & Programmable Web | Apiary |
| Basic | Current Version | 2 | 1 | 1A9 |
| Basic | Workgroup | Yes | Yes | No |
| Basic | Initial commit | July 2011 | September 2013 | April 2013 |
| Basic | API Design Approach | Bottom-up | Top-down | Top-down |
| Community | Community Based | By far has the largest comnmunity and has been around since 2011. | Has gained lot of traction of late in the enterprises. RAML is backed by a large open source community providing hundreds of pre-built, customizable tools for all your RESTful API needs | Is up and coming |
| Community | Stackoverflow questions | 3181 | 288 | 696 |
| Community | GitHub Stars | 3773 | 391 | 3002 |
| Community | GitHub contributors | 114 | 26 | 38 |
| Community | GitHub whatchers | 276 | 154 | 147 |
| Community | GitHub forks | 2196 | 118 | 872 |
| Community | Google search (name + “rest”) | 733K | 85K | 350K |
| REST Modeling | Stub generators | Yes | Yes | Yes (Limited Languages). |
| REST Modeling | Resources | X (“api”) | X | X |
| REST Modeling | Methods/ Actions | X (“operation”) | X (“method”) | X (“action”) |
| REST Modeling | Query Parameters | X | X | X |
| REST Modeling | Path/URL Parameters | X | X | X |
| REST Modeling | Header Parameters | X | X | X |
| REST Modeling | Representations (status codes, mime-types) | X | X | X |
| REST Modeling | Documentation | X | X | X |
| REST Modeling | Authentication | Basic, API-Key, OAuth 2 | Basic, Digest, Oauth, 1&2 | |
| REST Modeling | Representation Metadata | JSON Schema (subset) | ||
| REST Modeling | Nested Resources | X | X | |
| REST Modeling | Composition/ Inheritance | Traits, Resource Types | Resource Models | |
| REST Modeling | File inclusions | X | ||
| REST Modeling | API Version metadata | X | X | |
| REST Modeling | Sample Representations | X | X | |
| Tooling | Live Documentation Demo | Yes | Yes | Yes |
| Tooling | Authoring | (3rd party) | API-Designer | apiary.io |
| Tooling | Ad-hoc testing | Swagger-UI | API-Console | apiary.io |
| Tooling | API Console | Every HTTP Action Verb is separate | Grouped by endpoint with drill down into verbs | Unknown |
| Tooling | API Builder | Tools for most popular languages | MuleStudio APIKit (Visual, drag and drop), Osprey (Node) | Node & .Net bindings |
| Tooling | Documentation Builder | Single page documentation builder | Single or multiple page documentation builder (PHP only) | Single or multiple page documentation builder |
| Tooling | Mocking | (3rd party) | X | X |
| Tooling | Server Code | Java, scala, ruby, node.js | Java | (3rd party) |
| Tooling | Generate from code | Java, 3rd party (go, python) | ||
| Tooling | Language Support | Clojure, Go, JS, Java, .Net, Node, PHP, Python, Ruby, Scala | JS, Java, Node, PHP, Python, Ruby | Node, .Net |
| Tooling | Validation | X | X (java) | X |
| Tooling | Parsing | Java, js | Java, js | C++ (nodejs, c#) |
| Tooling | Easy of Getting Started | Very easy, everything in Github repos | Very easy, everything in Github repos | Installation required |
5/8/17
OpenAPI Specification format comparison
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment