If you’ve ever maintained an API where the documentation says one thing and the gateway does another, you already understand the problem that an OpenAPI-first API gateway solves. Configuration drift — where your spec, your routing rules, and your actual gateway behavior slowly diverge — is one of the most common sources of bugs, security gaps, and wasted developer time in API management.
An OpenAPI-first API gateway eliminates this problem by making your OpenAPI specification the actual gateway configuration. No import step. No conversion tool. No second file that needs to stay in sync. The spec is the gateway.
What Is an OpenAPI-First API Gateway?
An OpenAPI-first API gateway uses an OpenAPI specification as its native configuration format. Instead of defining routes in one system and maintaining a separate OpenAPI document for documentation, the gateway reads its routing, validation, and policy configuration directly from the OpenAPI file.
This is fundamentally different from gateways that merely support OpenAPI through import tools or plugins. In those systems, the OpenAPI document is an input that gets converted into the gateway’s own proprietary configuration format. The original spec becomes a snapshot — a starting point that immediately begins drifting from reality as teams make changes through the gateway’s UI or CLI.
In an OpenAPI-first gateway, every route, every parameter schema, and every operation description lives in the OpenAPI document. When you change the spec, you change the gateway. When you read the spec, you see exactly what the gateway is doing.
The Problem with Plugin-Based OpenAPI Support
Most API gateways have added OpenAPI support over time, typically through import utilities, plugins, or conversion tools. While this is better than no OpenAPI support at all, it introduces a structural problem: two sources of truth.
Here’s how the major gateways handle OpenAPI today:
Kong requires the
deck file openapi2kong CLI tool to
convert an OpenAPI spec into Kong’s declarative configuration format. The
conversion produces a separate YAML file with Kong-specific service and route
definitions. Once converted, the original OpenAPI spec has no ongoing
relationship with the gateway — changes to your API must be made in Kong’s
configuration, not in the spec.
Tyk lets you import an OpenAPI document through its Dashboard API, Gateway API, or Dashboard GUI. The import creates a “Tyk OAS API Definition” that adds Tyk-specific extensions to the original document. While Tyk preserves the OpenAPI structure, the gateway still maintains its own internal representation, and updates require re-importing the spec or modifying the Tyk-enhanced definition directly.
AWS API Gateway supports
importing OpenAPI definitions
for REST APIs, but with significant limitations. Root-level security definitions
are ignored. Cookie parameters and form data parameters are not supported. HTTP
APIs don’t support request validation at all — the requestBody and schema
fields are silently ignored during import. AWS also requires its own
x-amazon-apigateway-* vendor extensions for integrations, authorizers, and
other gateway-specific functionality.
Apigee lets you create an API proxy from an OpenAPI spec, but the import produces a proxy configuration that is entirely separate from the original document. The spec is used as a starting point for generating conditional flows and endpoint definitions, but from that point forward, the proxy has its own lifecycle. Keeping the spec and the proxy in sync requires manual effort or custom tooling.
The common pattern across all of these is the same: OpenAPI goes in, but the gateway’s own configuration comes out. The spec is a one-time input, not a living configuration.
Benefits of Spec-Driven API Management
When your OpenAPI specification is your gateway configuration, several problems disappear entirely.
Single Source of Truth
There’s one file that defines your routes, your request and response schemas, your operation descriptions, and your gateway policies. Developers, technical writers, and platform teams all look at the same document. There’s no question about whether the docs match the gateway, because they’re the same thing.
Automatic Request Validation from the Spec
With an OpenAPI-first gateway, you can enable
request validation
that enforces your spec’s JSON schemas on every incoming request. If your
OpenAPI spec says a field is required, or that a parameter must be an integer,
or that a request body must match a specific schema, the gateway can reject
non-conforming requests with a detailed 400 Bad Request error before they
reach your backend.
This isn’t a separate validation layer you need to configure — it reads the schemas that already exist in your OpenAPI document.
Documentation That Can’t Drift
When your developer portal is generated from the same file that configures your gateway, documentation accuracy becomes automatic. Every route, parameter, and schema in the portal reflects the live gateway configuration. There’s no deployment step where someone forgets to update the docs, because the docs are the configuration.
Reduced Configuration Drift and Human Error
In traditional gateways, adding a new endpoint means updating the gateway configuration, updating the OpenAPI spec, updating the documentation, and hoping all three stay in sync. In an OpenAPI-first gateway, you add the endpoint to the spec and everything else follows.
Better GitOps Integration
An OpenAPI document is a JSON or YAML file. It lives naturally in version control. Every change produces a meaningful diff. Code reviews can catch unintended route changes, missing validation schemas, or overly permissive parameter definitions. This is exactly how modern GitOps workflows are designed to work — infrastructure as code, reviewed and deployed through your standard CI/CD pipeline.
OpenAPI-First vs. Code-First vs. Design-First
The API development community has long debated code-first versus design-first approaches. An OpenAPI-first API gateway adds a third dimension to this discussion: enforcement at the gateway level.
Code-first means you write your backend code and generate an OpenAPI spec from annotations or decorators. The spec is an output, not an input. It describes what your code does, but nothing prevents your code from diverging from the spec.
Design-first means you write the OpenAPI spec before writing any code. The spec is the contract that both client and server agree to follow. But without enforcement, this is still just a social agreement — the gateway and backend can still diverge from the spec.
OpenAPI-first at the gateway level adds enforcement. The gateway reads the spec and uses it to route traffic, validate requests, and generate documentation. Your backend can still be code-first or design-first, but the gateway guarantees that the spec is enforced at the perimeter. Requests that don’t match the spec never reach your backend.
This is particularly valuable for teams that want the flexibility of code-first development with the reliability of design-first contracts. You can write your backend however you like, but the gateway enforces the spec regardless.
How Zuplo Implements OpenAPI-First
Zuplo is built from the ground up around OpenAPI as the
native configuration format. When you create a Zuplo project, your routes are
defined in a config/routes.oas.json file — a standard
OpenAPI document that also serves as
the gateway configuration.
The file uses standard OpenAPI 3.1 (compatible with 3.0) syntax for paths, operations, parameters, and schemas. Zuplo adds gateway-specific behavior through vendor extensions:
x-zuplo-route— defined inside each operation, this extension specifies the request handler, CORS policy, and inbound/outbound policies for that routex-zuplo-path— defined at the path level, this controls path matching behavior
Here’s what an operation looks like in a Zuplo routes.oas.json file (showing
only the paths section for brevity):
Combined with the standard top-level OpenAPI fields (openapi, info,
components), this forms a valid OpenAPI document and a complete gateway
configuration. The standard OpenAPI fields define the route, parameters, and
response schemas. The x-zuplo-route extension adds the handler (where to
forward requests) and policies (authentication, rate limiting, etc.).
Because the configuration is standard OpenAPI, you get several capabilities automatically:
- Developer portal generation — Zuplo’s
developer portal is built
directly from the same
routes.oas.jsonfile, so API documentation is always accurate and always current - Request validation — enable the request validation policy to enforce the JSON schemas defined in your OpenAPI spec against every incoming request
- GitOps workflows — the
routes.oas.jsonfile lives in your Git repository, so every change goes through version control and CI/CD - TypeScript extensibility — when you need custom logic beyond declarative policies, Zuplo supports custom policies written in TypeScript
OpenAPI Support Across API Gateways
Not all OpenAPI support is the same. Here’s how the approaches compare:
Zuplo — OpenAPI-Native
OpenAPI is the configuration format. Routes, schemas, and policies are defined directly in the OpenAPI document. No conversion step. Documentation, validation, and routing all read from the same file. Supports OpenAPI 3.1 and 3.0.
Kong — Conversion-Based
Uses the deck file openapi2kong CLI to convert OpenAPI specs into Kong’s
declarative config. The conversion is a one-time operation — changes must be
made in Kong’s config, not the original spec. Requires rebuilding the conversion
pipeline whenever the spec changes.
Tyk — Import-Based
Offers OpenAPI import via API, CLI, or Dashboard. Creates a Tyk-enhanced version of the spec with gateway-specific extensions. Closer to the spec than Kong’s approach, but the gateway still operates on its own internal representation. Supports OAS 3.0.x.
AWS API Gateway — Partial Import
Imports OpenAPI for REST APIs with multiple limitations: no root-level security,
no cookie parameters, no form data parameters. HTTP APIs silently ignore request
validation schemas. Requires x-amazon-apigateway-* extensions for integrations
and authorizers. REST APIs support both OpenAPI 2.0 and 3.0. HTTP APIs support
only OpenAPI 3.0.
Apigee — Proxy Generation
Uses OpenAPI specs to generate API proxy configurations. The import creates conditional flows and endpoint definitions, but the resulting proxy is a separate artifact with its own lifecycle. Keeping the spec and proxy in sync is a manual process. Supports OpenAPI 2.0 and 3.0.
The key distinction is between gateways that consume OpenAPI (converting it into something else) and gateways that are OpenAPI (using the spec directly as configuration). Only the latter approach eliminates configuration drift entirely.
Getting Started with an OpenAPI-First Gateway
If you have an existing OpenAPI spec, deploying it as an OpenAPI-first gateway with Zuplo takes just a few steps:
- Create a Zuplo project — sign up at zuplo.com and create a new project
- Import your OpenAPI spec — bring your existing spec into the project as
the
routes.oas.jsonfile, or start building routes in the OpenAPI-native route designer - Add policies — attach authentication, rate limiting, and validation
policies directly to your routes using the
x-zuplo-routeextension - Deploy — push to your Git repository and Zuplo automatically deploys your gateway along with a developer portal generated from your spec
- Iterate — every spec change updates the gateway, the validation rules, and the documentation in one step
For teams already practicing design-first API development, this workflow feels natural — you’re already writing the OpenAPI spec, and now that spec does double duty as your gateway configuration.
When an OpenAPI-First Gateway Makes Sense
An OpenAPI-first approach is particularly valuable when:
- You already maintain OpenAPI specs — if your team writes specs for documentation or code generation, making them the gateway configuration eliminates a maintenance burden
- Configuration drift is a real problem — if you’ve experienced bugs caused by the gateway, the docs, and the backend disagreeing about the API contract, a single source of truth solves this
- You want request validation without custom code — validating requests against a schema defined in the spec is far simpler than writing validation middleware
- Developer experience matters — an always-accurate developer portal that matches the live gateway configuration makes onboarding faster and support tickets rarer
- You use GitOps — an OpenAPI file in a Git repository is a natural fit for infrastructure-as-code workflows with pull request reviews and automated deployments
The OpenAPI-first approach is less important if your API has no spec (though that’s increasingly rare), or if your gateway needs are limited to simple reverse proxying without documentation or validation.
Conclusion
The API gateway market has broadly recognized that OpenAPI support matters — every major gateway now offers some form of spec import or conversion. But there’s a fundamental difference between gateways that use OpenAPI as an input and gateways that use it as their native language.
An OpenAPI-first gateway eliminates the translation layer between your spec and your gateway configuration. One file defines your routes, your validation rules, your documentation, and your policies. When that file changes, everything stays in sync automatically.
If you’re evaluating API gateways and you already invest in OpenAPI specifications, look for one where the spec isn’t just an import — it’s the foundation. Explore how Zuplo’s OpenAPI-native approach works and see what it looks like when your spec and your gateway are the same thing.