Verquest
Version API requests without losing track of schema, validation, and mapping changes.
Verquest is a Ruby gem I built to define versioned request structures, validate incoming params with JSON Schema, and export components for OpenAPI documentation.
Request contracts as Ruby code
Define fields, objects, arrays, enums, constants, references, and version blocks in a small DSL that stays close to the application code using it.
What it handles
The gem focuses on the parts of API evolution that are easy to scatter across controllers, docs, and custom validators.
Versioned request structures
Describe how a request should look for each API version, then resolve the right contract at runtime.
JSON Schema validation
Validate incoming parameters against generated schemas backed by json_schemer.
OpenAPI components
Export JSON Schema components that can be used in API documentation without maintaining a separate schema by hand.
Why I made it
Versioned APIs need more than a params whitelist. The external request shape, internal application shape, validation rules, and documentation all need to evolve together.
Install Verquest
Verquest supports Ruby 3.2 and newer.
gem "verquest", "~> 0.6"