Skip to content

Support OpenAPI 3.1 - #495

Merged
geemus merged 1 commit into
interagent:masterfrom
treadinc:openapi-3-1
Oct 20, 2026
Merged

geemus merged 1 commit into
interagent:masterfrom
treadinc:openapi-3-1

Conversation

@modosc

@modosc modosc commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

adds openapi 3.1 support, using openapi_parser 2.4.

  • routes 3.1 docs to the openapi 3 driver (the openapi version is parsed once as a Gem::Version, so 3.1 and unquoted yaml 3.1 work too)
  • adds Committee::Utils.schema_type to handle array-form type (e.g. [array, "null"]) in param deserialization and test dummy values
  • bumps the openapi_parser dependency to ~> 2.4
  • readme section on what 3.1 features are and aren't supported

like openapi_parser, the runtime doesn't check the declared version, so array-form type also works in 3.0 docs (previously array/object params with it failed). strict_specification_version: :warn flags it.

tests cover:

  • query/path coercion, constraints after coercion
  • const
  • numeric exclusive bounds
  • prefixItems
  • components.pathItems
  • webhooks not being routed
  • response validation
  • array-form type in every deserializer style, the except test helpers, and 3.0 docs

not yet supported:

  • $dynamicRef / $dynamicAnchor
  • if / then / else
  • unevaluatedProperties
  • dependentRequired
  • patternProperties
  • $ref siblings

closes #352

Route 3.1 documents to the OpenAPI 3 driver, handle array-form `type` where committee switches on it, and add 3.1 request/response tests.

@geemus geemus left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, thanks!

@geemus
geemus merged commit 46ee1bb into interagent:master Oct 20, 2026
9 checks passed
@modosc
modosc deleted the openapi-3-1 branch October 21, 2026 18:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

OpenAPI 3.1 support

2 participants