5/8/17

OpenAPI Specification format comparison


CategoryTitleSwaggerRAMLAPI Blue Print
SummaryProsHigh adoption rate, good code-level tooling, large and active community of users and supporters, greater support for multiple languagesGood online design tools and mature supporting infrastructure, seemingly useful advanced constructs, human readable format, hight industry backingGood online design tools, good community involvement, easy to understand, simple to write
SummaryConsBottom-up, lacks advanced constructs for metadataVery new to the game, low adoption, lacks code-level tooling, still unproven long-termNew to the game, low adoption, lacks advanced constructs and code-level tooling, complex installation
BasicPrimary SponsorSmartBearMULESOFTAPIARY
BasicFormatJSONYAMLMARKDOWN
BasicInitiatives towards Industry Standard Open API Initiative (OAI) - Has announced an open governance model around the Swagger Specification under the Linux Foundation.Not AvailaibleNot Availaible
BasicOpen Source InititivesThe 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.
BasicIndustry BackingReverb, 3Scale, ApigeeMulesoft, SOA, AngularJS, Intuit, Box, PayPal, & Programmable WebApiary
BasicCurrent Version211A9
BasicWorkgroupYesYesNo
BasicInitial commitJuly 2011September 2013April 2013
BasicAPI Design ApproachBottom-upTop-downTop-down
CommunityCommunity BasedBy 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 needsIs up and coming
CommunityStackoverflow questions3181288696
CommunityGitHub Stars37733913002
CommunityGitHub contributors1142638
CommunityGitHub whatchers276154147
CommunityGitHub forks2196118872
CommunityGoogle search (name + “rest”)733K85K350K
REST ModelingStub generatorsYesYesYes (Limited Languages).    
REST ModelingResourcesX (“api”)XX
REST ModelingMethods/ ActionsX (“operation”)X (“method”)X (“action”)
REST ModelingQuery ParametersXXX
REST ModelingPath/URL ParametersXXX
REST ModelingHeader ParametersXXX
REST ModelingRepresentations (status codes, mime-types)XXX
REST ModelingDocumentationXXX
REST ModelingAuthenticationBasic, API-Key, OAuth 2Basic, Digest, Oauth, 1&2
REST ModelingRepresentation MetadataJSON Schema (subset) (inline/ external) (inline)
REST ModelingNested ResourcesXX
REST ModelingComposition/ InheritanceTraits, Resource TypesResource Models
REST ModelingFile inclusionsX
REST ModelingAPI Version metadataXX
REST ModelingSample RepresentationsXX
ToolingLive Documentation DemoYesYesYes
ToolingAuthoring(3rd party)API-Designerapiary.io
ToolingAd-hoc testingSwagger-UIAPI-Consoleapiary.io
ToolingAPI ConsoleEvery HTTP Action Verb is separateGrouped by endpoint with drill down into verbsUnknown
ToolingAPI BuilderTools for most popular languagesMuleStudio APIKit (Visual, drag and drop), Osprey (Node)Node & .Net bindings
ToolingDocumentation BuilderSingle page documentation builderSingle or multiple page documentation builder (PHP only)Single or multiple page documentation builder
ToolingMocking(3rd party)XX
ToolingServer CodeJava, scala, ruby, node.jsJava(3rd party)
ToolingGenerate from codeJava, 3rd party (go, python)
ToolingLanguage SupportClojure, Go, JS, Java, .Net, Node, PHP, Python, Ruby, ScalaJS, Java, Node, PHP, Python, RubyNode, .Net
ToolingValidationXX (java)X
ToolingParsingJava, jsJava, jsC++ (nodejs, c#)
ToolingEasy of Getting StartedVery easy, everything in Github reposVery easy, everything in Github reposInstallation required

No comments: