Swagger
02 / 02

Design-First, Codegen & Keeping the Spec Honest

Design-First, Codegen & Keeping the Spec Honest

Design-First vs. Code-First

Design-first: write the spec before/independent of implementation — an upfront contract teams agree on. Code-first: generate the spec from existing implementation annotations — reflects whatever the code already does. Design-first enables mock servers frontend teams can build against before the real backend exists.

Codegen

Swagger Codegen / OpenAPI Generator produce client SDKs (in various languages) or server-side route stubs directly from the spec — reducing hand-written, error-prone integration code on both sides.

Spec Drift & Contract Testing

A spec is just a document — it doesn't automatically guarantee the real implementation matches it. Contract testing automatically validates actual API responses against the documented schema, catching the classic case where a field was renamed in code but the spec was never updated.

Versioning

One OpenAPI document describes one API version — teams supporting v1 and v2 simultaneously typically maintain a separate spec (and Swagger UI instance) per version rather than cramming incompatible versions into one file.

How Much Investment Is Worth It

A public, externally-consumed API benefits heavily — external developers can't easily ask clarifying questions, so self-serve interactive docs reduce support burden significantly. A small internal API used by one tightly-coordinated team may get proportionally less value for the same investment — scale the effort to the API's actual complexity and audience.

Keep your own version of these notes — editable, searchable, and organised by your stack.

Start free