API Design Tooling From Swagger

As part of my research in the world of API design, I’m looking into the different approaches by API Blueprint, RAML and Swagger, to provide API definitions, services and tools that assist developers in better designing APIs. I have already look at the evolving motivations behind API definitions, and some insight into the vision behind Swagger, API Blueprint and RAML, next up is take a look at the tooling that is evolving around each approach.

First up is Swagger, from the folks over at Wordnik. I would consider Swagger the first mover in this new world of API design, with the Wordnik team’s approach centered around a JSON based API definition:

  • Swagger Core - A JSON based API definition format, which allows for the description of REST APIs

Around the Swagger core the Wordnik team developed a core set of tooling that met their immediate needs for the Wordnik API:

  • Swagger CodeGen - A template-driven engine to generate client code in different languages by parsing a Swagger Core definition
  • Swagger UI - A dependency-free collection of HTML, Javascript, and CSS assets that dynamically generate beautiful documentation from a Swagger defined API

Secondarily other more specific tools have emerged:

Swagger was born out of Wordnik’s desire for interactive documentation, but evolved into tooling for generating server and client side code, and has ended up providing a central language for facilitating discussions around API design, deployment and integration in many other areas.

I know there are some other tools available out there for Swagger, this just represents would I could find easily off their Github account. If there are other Swagger tools you know of, let me know and I’m happy to add to this post and my research.