DEV Community

Cover image for Why use Swagger for creating and documenting APIs

Why use Swagger for creating and documenting APIs

Diana Maltseva on July 09, 2018

API is the best way of connecting software engineers and sharing valuable data and developments. Through API, programmers access a network of share...
Collapse
 
millebi profile image
Bill Miller

A few thoughts that may be helpful:

I'm not sure if the newest version is the same (I assume it is), but the older version of Swagger allowed for dynamic generation of your API as well as a static (compile time) version.

The dynamic version essentially creates an API to call your API at runtime, but it is also running code inside your server... which may/may not be a security/performance problem for your application.

The static version generates the needed files during compile and the files are then deployed using simple HTML deployment. This makes them simpler to deploy and not have any extra security/performance risks to your application (other than serving the files of course).

The two methods of deployment end up having implied features not explicity defined by the authors, like:

  • Dev/QA: Dynamic publishing of the API, so that it is always accurate.
  • Production: Static publishing of your API to reduce risk AND control which features you want to advertise to callers (i.e. Display a subset of what's actually available until new features are fully tested and scaled)

Mixing the two types depending on the context can be extremely useful and have the same upfront "costs" to implement (i.e. The information entered into the code is the same for both methods).

Collapse
 
rafalpienkowski profile image
Rafal Pienkowski

Nice post.
Nowadays I can't image the creation of an open to the Internet API which will be accessible to anyone without Swagger Docs page. For my OpenAPI Specification is a "REST equivalent" of SOAP's WSDL.

Collapse
 
kayis profile image
K

Nice!

I saw AWS uses Swagger for API-Gateway definitions. Most of the time I got by by using CloudFormation/AWS SAM to define simple stuff, but sometimes they wrote about how you need Swagger for a feature.

I should probably learn about it :D

Collapse
 
colinmtech profile image
Colin Morgan

Is there a convenient way to break swagger docs into multiple files? I have a really hard time reading and working in huge monolithic JSON/yaml files. I found that, even for moderate sized APIs, the swagger doc became ridiculously large and difficult to work with.

I like the idea of swagger, I just don't use it because I become so frustrated trying to maintain it.

Collapse
 
dianamaltseva8 profile image
Diana Maltseva

You can delve into the issue by checking out this link stackoverflow.com/questions/355479.... Here you'll find how to generate documentation using swashbuckle for WebApi 2.

Collapse
 
suraj_rtiwari profile image
Suraj Tiwari

Nice, post