Skip to content

Latest commit

 

History

History
434 lines (343 loc) · 36.7 KB

open-source.md

File metadata and controls

434 lines (343 loc) · 36.7 KB

Tools and Integrations

Here you can find a list of libraries and frameworks serving the Swagger ecosystem.

The main list consists of tools that provide support for the latest Swagger 2.0. Below, you can find a list of tools that have not yet been updated.

Swagger-Group Projects

These are the projects that were created by the same people who authored the Swagger Specification:

Name Main Purpose Description
swagger-js Javascript integration A Swagger implementation for JavaScript.
swagger-ui Swagger description rendering A dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
swagger-tools Node.js middleware A Node.js and browser module that provides tooling for validation and more around Swagger
swagger-editor Swagger description editing Swagger Editor lets you edit API specifications in YAML inside your browser and to preview documentations in real time. Valid Swagger JSON descriptions can then be generated and used with the full Swagger tooling (code generation, documentation, etc).
swagger-core Java integration A Swagger implementation for Java/Scala. Has integration with JAX-RS (Jersey, Resteasy, CXF...), Servlets and Play Framework.
swagger-parser Java integration A reader of Swagger definitions in Java.
swagger-codegen Client/Server code generation A template-driven engine to generate client code in different languages by parsing your Swagger documentation.
swagger-node Node.js integration Tool for building APIs in Node.js with integration for Express, hapi, restify, and Sails.
validator-badge Validation service Validate your Swagger definitions as a service.

Community-Driven Language Integrations

All the tools under this section support Swagger 2.0.

Clojure

Name Description
ring-swagger Swagger implementation for Clojure/Ring using Prismatic Schema for data models
compojure-api Swagger for Compojure
fnhouse-swagger Swagger for fnhouse
pedestal-swagger Swagger for pedestal
swagger1st A Clojure/Ring handler that does parsing, validation and routing based on swagger definitions.
Friboo Utility library for writing microservices in Clojure, with support for Swagger and OAuth.

ColdFusion

Name Description
swagger-sdk This module allows for software development using the Swagger/OpenAPI specification and utilizes the v3.0 OpenAPI Specification
cbSwagger This module automatically generates OpenAPI ( fka Swagger ) documentation from your configured ColdBox MVC application and module routes.

C++

Name Description
oatpp-swagger Swagger-UI integration for oat++ applications. Utilizes OpenAPI 3.0.0 Specification.

D

Name Description
swaggerize Specification parsing and structures, request validation and handler bindings.

Delphi

Name Description
SwagDoc SwagDoc is a Delphi library to generate swagger.json file for Swagger Spec version 2.0. Create a public documentation REST API using Swagger 2.0 for Delphi Language.

Erlang

Name Description
cowboy-swagger Add swagger compliant specifications to your cowboy web server. Available on hex.pm.

Elixir

Name Description
PhoenixSwagger PhoenixSwagger is the library that provides Swagger integration to the Phoenix web framework. It generates Swagger specification for Phoenix controllers and validates the requests.

Elm

Name Description
swagger-to swagger-to generates Elm client code from a Swagger spec.

Gitlab

Name Description
swagger-template A template project to automatically turn your YAML files into Swagger UI documentation.

Go

Name Description
go-swagger A toolkit to support your API development with Swagger.
goa goa is a framework for building RESTful microservices in Go with first class Swagger support.
grpc-gateway generate a REST gateway and swagger definition from a gRPC protobuf definition
swagger-to swagger-to generates Go server code from a Swagger spec.

Haskell

Name Description
swagger2 Express swagger 2.0 schemas in Haskell
servant-swagger Servant is a framework for building RESTful microservices in Haskell with first class Swagger support via servant-swagger.

Java

Name Description
assertj-swagger assertj-swagger is a library which compares a design-first Swagger YAML with an implementation-first Swagger JSON output (e.g. from springfox). assertj-swagger allows to validate that the implementation in compliance with the design specification.
binder-swagger-java binder-swagger-java was designed to help construct the swagger object, corresponding to swagger.json, and let it accessible from swagger ui or other http visitors.
dropwizard-swagger A dropwizard bundle that wraps Swagger-Core.
elide A framework for building JSON-API web services with generated Swagger documentation.
jooby-swagger Export jooby apps to Swagger Spec 2.0.
restlet-framework Restlet Framework extension that supports auto-generation of Swagger 2.0 from Restlet API and JAX-API applications
springfox Integrates with Spring MVC with support for Swagger 1.2 and Swagger 2.0 spec.
swagger-codegen-maven-plugin A maven build plugin which allows the codegen project to be triggered for generating clients, etc. during the build process.
swagger2markup Swagger2Markup converts a Swagger JSON or YAML file into AsciiDoc or Markdown documents which can be combined with hand-written documentation. The AsciiDoc documents can be converted into HTML5, PDF and EPUB. The Swagger2MarkupConverter supports the Swagger 1.2 and 2.0 specification.
swagger2markup-gradle-plugin A Swagger2Markup Gradle Plugin which converts a Swagger JSON or YAML file into AsciiDoc or Markdown documents which can be combined with hand-written documentation. The AsciiDoc documents can be converted into HTML5, PDF and EPUB.
swagger-maven-plugin Support Swagger Spec 2.0, integrate with JAX-RS & Spring MVC project, and easily generate swagger.json & a static document during build phase.
swagger-codegen-gradle-plugin A Gradle Plugin which wraps swagger-codegen.
swagger-request-validator A standalone library for validating request/response interactions against a Swagger / OpenAPI spec. Framework agnostic, with adapters for WireMock, Rest Assured and Pact.
Swagger Brake CLI A library with a CLI interface that checks 2 API specifications for breaking changes.
Swagger Brake Maven Plugin A Maven plugin for Swagger Brake.
Swagger Brake Gradle Plugin A Gradle plugin for Swagger Brake.

JavaScript

Name Description
Swagger Parser Parses, validates, and dereferences JSON/YAML Swagger specs in Node and browsers

Jolie

Name Description
Jester - Jolie rEST routER The toolset allows for the deployment of existing Jolie services as REST microservices. It generates Swagger descriptors to be used in a SwaggerUI. Starting from an existing Swagger descriptor it generates the Jolie client stubs for performing all the available APIs.

Lua

Name Description
lua-Spore A generic ReST client using Swagger 2.0 descriptions.

TypeScript

Name Description
NSwag The toolset generates TypeScript client classes and DTO interfaces to call web service operations (supports JQuery, AngularJS, Angular 2 and more).
swagger-to swagger-to generates Angular 2+ client code from a Swagger spec.

.NET

Name Description
Swashbuckle Adds some Swagger to your WebApi.
Swashbuckle.AspNetCore Swagger tools for documenting API's built on ASP.NET Core.
AutoRest The AutoRest tool generates client libraries for accessing RESTful web services from a Swagger specification.
SwaggerProvider F# Type Provider for Swagger
NSwag The toolchain generates Swagger specifications from Web API controllers and client code to access them via C#.
QSwag Fast & Light Swagger generator for .NET Core
SwaggerWcf Generates Swagger (2.0) for WCF services and also provides swagger-ui
Nancy.Swagger Generates Swagger for Nancy services on .Net Framework/Core/Standard
Unchase OpenAPI (Swagger) Connected Service Visual Studio 2017/2019 extension to generate C# (TypeScript) HttpClient (or C# Controllers) code for OpenAPI (formerly Swagger API) web service with NSwag

Node.js

Name Description
a127 a127 is toolkit for modeling & building rich, enterprise-class APIs in Node.js on your laptop. The focal point of a127 is the Swagger 2.0 specification for defining and describing an API model. From the Swagger model you can generate clients, servers and interactive documentation for your API. From @apigee
api-spec-converter A tool for converting from other API specification formats (e.g. I/O Docs and API Blueprint) to Swagger
blueoak-server BlueOak Server maximizes the value of your Swagger API by using it to drive runtime behavior.
express-openapi An unopinionated openapi framework for express.
fleek-parser A simple parser integrated with swagger on top of Koa.js
fleek-response A simple response library integrated with swagger on top of Koa.js
fleek-router A simple router integrated of swagger with Koa.js
fleek-validator A simple validator integrated with swagger on top of Koa.js
fury-adapter-swagger Fury.js provides uniform interface to API description formats such as API Blueprint and Swagger. fury-adapter-swagger is an adapter for Swagger.
generator-swaggerize Yeoman generator for krakenjs/swaggerize tools from @PayPalDev.
got-swag A CLI and lib to run automated tests on Swagger-powered APIs. Supports monkey testing and customized test suites.
hapi-swaggered A hapi.js plugin to generate swagger v2.0 compliant specifications based on hapi routes and joi schemas.
hippie-swagger API testing tool with automatic swagger assertions
oas-nodegen A library for generating completely customizable code from the Open API Specification (FKA Swagger) RESTful API documentation using the scripting power of Node.js
openapi-mock A CLI to start a mock server based upon a Swagger/OpenAPI JSON or YAML spec file
pokemock A mock server generated from an arbitrary Swagger file. Exports a set of customizable Express middlewares.
sails-swagger A Sails.js plugin that generates a Swagger (v2.0) document from your application Models, Controllers, and Routes. Also see swagger.balderdash.io for a Sails-themed Swagger UI.
serverless_swagger A Serverless plugin that generates serverless configuration, api gateway events, and basic handler stub functions from a Swagger specification.
swagger-jsdoc Takes JSDoc comments from any set of JavaScript files and generates a swagger specification file, that could be consumed by Swagger UI. Works also with CLI.
swagger-mongodb lightweight swagger-ui crud-api backed by mongodb
swagger-tools Various Swagger tools for JavaScript including an API/CLI (conversion, validation, ...) and Connect middleware for routing, validation, security and swagger-ui.
swaggerize-express Design-driven RESTful apis with swagger and express from @PayPalDev.
swaggerize-hapi Design-driven RESTful apis with swagger and hapi from @PayPalDev.
swagmock Mock data generator for swagger api. Generates mock request and response according to swagger api specification of your application. Examples
Swagger Express Middleware Swagger middleware and mocks for Express.js
Swagger Parser Parses, validates, and dereferences JSON/YAML Swagger specs in Node and browsers
test2doc.js Autogenerate Swagger specification from your tests/specs.
koa-joi-swagger Using joi schema to validate and generate Swagger UI, for koa.
swagger-stats API Telemetry based on Swagger(OpenAPI) specification. Trace API calls and Monitor API performance, health and usage statistics in Node.js Microservices

Perl

Name Description
Raisin A framework with a built-in Swagger support.
Mojolicious::Plugin::OpenAPI Generates Mojolicious routes and input/output validation rules.
OpenAPI::Client Perl generator for user agent code

PHP

Name Description
cakephp-swagger CakePHP 3.x plugin that adds auto-generated Swagger 2.0 documentation to your projects using swagger-php and swagger-ui.
Swagger-PHP a library implementing the swagger.io specification to describe web services, operations/actions and models enabling a uniform means of producing, consuming, and visualizing RESTful web services.
SwaggerAssertions Swagger 2 test assertions for validate your API requests and responses
php-swaggerize-fastroute-library a package to automatically generate FastRoute from swagger json definition. It's compatible with Lumen as long as you use controller class
SwaggerGen a Swagger 2.0 documentation generator for existing PHP source code, using human-writeable PHP-Documentor style comments like @rest\form int[0,123> age Age of the person. With builtin preprocessor.
Jane OpenAPI Generate a PHP Client API (PSR7 compatible) given a OpenAPI (Swagger) specification.
gossi/swagger A php library to manipulate swagger specifications
calcinai/strut A complete OpenAPI manipulation library. Allows full creation/loading, modification and serialization of specifications.
byjg/swagger-test A set of tools for test your REST calls based on the swagger documentation using PHPUnit.

Python

Name Description
falsy with FAL.S.Y, you can use falcon, swagger-ui, yml together, which makes writing api easy!
pyramid-swagger Convenient tools for using Swagger to define and validate your interfaces in a Pyramid webapp.
pyramid-openapi3 Validate Pyramid views and responses against an OpenAPI 3.0 document.
flask-restplus Helpers, syntaxic sugar and Swagger documentation for Flask-Restful
pyswagger A type-safe, dynamic, spec-compliant Swagger client.
flex Swagger 2.0 schema validation, and tooling for validating arbitrary request/response objects.
Flasgger Flask Extension to provide Swagger 2.0 to any view using docstrings (embeds swagger UI)
flask-swagger A Swagger 2.0 extractor for Flask via YAML in docstrings
bravado Swagger 2.0 client with support for both synchronous and asynchronous http.
bravado-core Library for Swagger 2.0 schema ingestion, validation, request/response validation, etc.
swagger-spec-validator Library for validating Swagger 1.2 and 2.0 schemas.
swagger-py-codegen Generate Flask-RESTful application code from a Swagger Specification doc.
Connexion Swagger-first REST framework on top of Flask with validation and OAuth 2 support.
pecan-swagger Partial swagger extractor for pecan.
swagger-parser Give useful informations about your swagger files.
swagger-tester Automatic swagger API tester.
swagger-aggregator Aggregate several swagger APIs in one.
swagger-stub Generate a stub from a swagger file.
bottle-swagger Swagger integration for the Bottle web framework
prance Swagger parser that resolves JSON references.
spec-synthase Spec-Synthase is a tool to help deal with big swagger 2.0 files, by building the swagger specification file from small yaml files.
FastAPI High performance, easy to learn, fast to code, ready for production. Powered by Starlette and Pydantic. Based on OpenAPI 3. Includes Swagger UI as a frontend. All using Python 3.6+ types to declare request parameters, bodies, etc. With automatic data serialization, conversion, validation and documentation.
swagger-to swagger-to generates Python client code with type annotations (based on requests) from a Swagger spec.

R

Name Description
plumber Create an API powered by the R language whose default OpenAPI documentation is served by swagger.
swagger Dynamically Generate Documentation from a 'Swagger' Compliant R API.

Ruby

Name Description
Apivore RSpec based tool to test your API against its Swagger 2.0 specification.
grape-swagger Add Swagger compliant documentation to your grape API.
MiniApivore MiniTest based revision of Apivore gem, a tool to test your API against its Swagger 2.0 specification.
oas_parser A Ruby Open API Spec 3 Definition Parser.
swagger-blocks Define and serve live-updating Swagger JSON for Ruby apps.
swagger_engine include Swagger-ui as mountable rails engine.
svelte Dynamic Ruby client generator for Swagger 2.0 compliant APIs.
rspec-rails-swagger Generate Swagger 2.0 docs for Rails apps using RSpec request specs. Test results can be captured as response examples.
rswag Swagger tooling for Rails API's. Generate beautiful API documentation, including a UI to explore and test operations, directly from your rspec integration tests.

Scala

Name Description
sbt-swagger-codegen Models, Client and Server code generation integrated as an SBT plugin. Generate code from your Swagger files
play-swagger Plugin that with Play Framework makes it easy to build RESTful web services from a Swagger API specification as the single source of truth.
Fintrospect Finagle-based web framework which generates typesafe endpoint Swagger documentation out of the box, including generation of JSON-schema for models descriptions.
swagger-akka-http Support for generating OpenAPI documentation for akka-http based applications.

Swift

Name Description
SwagGen Swift command line tool for generating client side code from a Swagger spec. Built in support for Swift target.

Community-Driven Tools

These are third party tools generated by the Swagger community:

Name Description
APIs.guru Wikipedia for Web APIs. Directory of REST API specs in OpenAPI(fka Swagger) 2.0 format. https://APIs.guru
API Spots The API Spots project is a collection of 'human-friendly' tools for anyone interested in discovering, exploring and interacting with APIs without the need for a technology background.
bootprint-swagger A tool for creating static documentation from Swagger definitions, with customizable styles and templates using Handlebars, LessCss and Bootstrap.
Dredd Language-agnostic command-line tool for validating Swagger document against backend implementation of the API.
ember-swagger-ui An ember-cli addon for quickly and easily adding swagger-ui to your EmberJS application.
generator-openapi-repo Yeoman generator to setup GitHub repo with spec, documentation (ReDoc + swagger-ui) and live-editing with swagger-editor.
intellij-swagger Swagger Plugin helps you to easily edit OpenAPI/Swagger specification files inside IntelliJ IDEA
linter-swagger Atom Package for linting Swagger spec
ReDoc OpenAPI/Swagger-generated API Reference Documentation. Demo
swagger-commander Plug & play command line interface to Swagger APIs.
swagger-confluence A tool for parsing a Swagger Schema and publishing API documentation to an Atlassian Confluence wiki. Includes a Java library, a command line executor, and a Gradle plugin.
swagger-diff A command-line utility, RSpec matcher, and Ruby library for comparing two Swagger specifications.
swagger-style-validator A customizable style validator to make sure your Swagger/OpenApi spec follows your organization's standards.
SwagDefGen JSON request/response mocks to Swagger definitions converter.
vscode-apielements A Visual Studio Code extension which will bring interactivity into your swagger documents!
ember-swagger-ui An ember-cli addon for quickly and easily adding swagger-ui to your EmberJS application.
commandcar cURL on steroids. Invoke any API from the commandline.
SwagGen Swift command line tool for generating client side code from a Swagger spec.
swagger-mock-validator Language-agnostic command-line tool for validating a Swagger document against a mock file, such as a Pact file.
Spectacle A beautiful static HTML5 documentation generator for OpenAPI/Swagger 2.0. Demo
Swagger-ui-themes A collection of css themes to spice up your Swagger docs.
APIFuzzer Fuzz test your application using your Swagger definition without coding
swagger-to-flowtype A CLI tool for generating type definitions of Flow from a given Swagger file.
swagger_style swagger_style, a part of swagger-to set of tools, checks the style (naming conventions, descriptions etc.) of a Swagger spec.

Tools for previous Swagger versions

The tools below do not produce Swagger 2.0 yet. They are listed here as they may still have value for users. Feel free to contribute these projects and help them move to Swagger 2.0!

Clojure

Name Description
octohipster A hypermedia REST HTTP API library for Clojure.

ColdFusion / CFML

Name Description
swagger-docs-cfml create swagger docs from CFML (Railo) ReST components.

Eiffel

Name Description
swagger Swagger protocol implementation in Eiffel.

Go

Name Description
go-restful library to build REST based Web Services using Google Go.
Sashay a Go code generator for REST services that expose a Swagger specification.
beego A framework support support auto generate swagger spec from comments
Swagger spec generator A swagger spec auto generator. Doesn't depends on any framework

Groovy

Name Description
springfox SpringFox Grails integration library that produces swagger specification documentation for Grails 3.x. Here is a demo application showcasing the library integration.
restapidoc A simple RESTful API documentation plugin for the Grails web application framework.
swaggydoc Swagger Documentation for Grails Controllers. [Source]

Java

Name Description
swagger4spring-web Integration with Spring MVC.
swagger-jaxrs-doclet A JavaDoc Doclet that can be used to generate a Swagger resource listing suitable for feeding to swagger-ui.
swaggerj4 A parsing library to turn swagger specifications into POJOs.
swaggerapi Creates a Swagger resource listing suitable for feeding to swagger-ui by annotating your classes and methods and handles API calls to those methods
swagger-validator Validates that definitions in a swagger.yaml match the actual Java code.

JavaScript

Name Description
swagger-ajax-client Swagger client to communicate with a Swagger server using XHR requests from browsers. Includes client-side validation of requests against the given Swagger spec.
swagger-angular-client Angular service Swagger client to communicate with a Swagger server using the Angular-specific services (such as $http). Includes client-side validation of requests against the given Swagger spec.
swagger-client-generator Client library generator which can be used to create framework or platform-specific Swagger clients given a transport method (e.g. swagger-angular-client or swagger-node-client).
swagger-validate Validation utility to validate Swagger models or requests against a given spec, useful for writing Swagger client libraries.

.Net

Name Description
ServiceStack a high-performance .NET web services platform that simplifies the development of high-performance REST (JSON, XML, JSV, HTML, MsgPack, ProtoBuf, CSV) and WCF SOAP Web Services. Has support for Swagger integration.
fubumvc-swagger This project helps your FubuMVC web application generate API documentation via Swagger.
dotswaggen .Net application that generates code (or anything else, e.g. markdown) from a swagger specification file.

Node.js

Name Description
Swagger Framework a module for creating Swagger-based apis using the standard HTTP request listener interface (including Express). It supports request normalization/validation, pluggable consumes/produces, spec validation, and more.
swagger-jack Express middleware to automatically create route and validate inputs from a swagger descriptor (for NodeJS).
hapi-swagger A Swagger interface for HAPI.
Swagger Validation A library to validate a request that integrates with swagger-node-express.
swagger-node-client Node client to communicate with Swagger servers. Includes detailed client-side validation against the API spec.
ratify A Hapi plugin that automatically creates Swagger documentation AND validates request/response parameters using the JSON Schema spec.
swagger-express A simple and clean solution to integrate swagger with express straight away from jsdoc or a yaml file.

PHP

Name Description
NelmioApiDocBundle A Symfony Bundle.
Restler PHP framework, swagger support in 3.0.
swagger-assert enable to assert keys in swagger document and API response
Swaggervel a package for Laravel that uses Swagger-PHP and swagger-ui to auto-generate docs for your project.

Python

Name Description
django-rest-swagger Swagger Documentation Generator for Django REST Framework
django-tastypie-swagger An adapter to use Swagger with django-tastypie.
flask-restful-swagger A Swagger spec extractor for flask-restful.
tornado-swagger A Swagger-v1.2 specification extractor for Tornado Restful Framework.

Ruby

Name Description
swagger-docs Generates Swagger files for Rails APIs with a simple DSL.
source2swagger Builds a swagger compliant JSON specification from annotations on the comments of your source code.
swagger_engine include Swagger-ui as mountable rails engine.

Scala

Name Description
Scalatra see the Swagger Guide
spray-swagger Spray-Swagger brings Swagger support for Spray Apis.
Api-doc Creates swagger docs from easily readable ascii text placed in the code. Depends on playframework, but may also be used in other frameworks.

Community-Driven Tools

These are third party tools generated by the Swagger community:

Name Description
gform-admin An alternative UI client for Swagger.
swagger-cli-client Command-line interface generator to communicate with Swagger servers.
Swagger2Postman Creates a Postman collection from live Swagger documentation