Swagger is a free, open source, language-agnostic interface to RESTful APIs, with tooling that gives you interactive documentation, client SDK generation, and discoverability. It’s one of several recent attempts to codify the description of RESTful APIs.
The tooling makes Swagger especially interesting. Swagger-UI automatically generates beautiful documentation and a live API sandbox from a Swagger-compliant API. The Swagger Code Generator project allows generation of client libraries automatically from a Swagger-compliant server.
Swagger Editor lets you edit Swagger API specifications in YAML inside your browser and preview documentations in real time. Valid Swagger JSON descriptions can then be generated and used with the full Swagger tooling.
The (paid) Amazon API Gateway is a managed service for API management at scale. It can import Swagger specifications using an open source Swagger importer tool.
While the API management space is starting to become crowded, Swagger is our top choice for its useful tooling, excellent UI generation, extensive language support, and widespread adoption. The typical startup introducing its own REST API doesn’t agonize about how it will document the API and provide a test bed for developers: It simply generates a Swagger UI.
-- Martin Heller