Skip to content

Conversation

obs-gh-peterkolloch
Copy link
Contributor

Support status code patterns such as 2XX, ...


Describe the bug Documentation indicates that patterned HTTP status codes may be used for Response Objects. Supply a patterened HTTP status code in this manner results in the following warning: Invalid response status code 4XX (not a valid HTTP status code), response will be omitted from generated client

@obs-gh-peterkolloch
Copy link
Contributor Author

I am using the "newish" Union types that require Python 3.11. That makes the tests currently fail. I'll change that.

@dbanty
Copy link
Collaborator

dbanty commented Aug 19, 2025

Hey @obs-gh-peterkolloch thanks for tackling this! I took a stab at making a couple tweaks over in #1303. That's not done yet because I have to update some existing tests and add tests to guarantee the new behavior, but I specifically was trying to also:

  1. Make sure that we always check specific codes before patterns, as per the spec
  2. also handle "default" which has been asked for a fair bit

If you get a chance, please take a look at that and let me know what you think ☺️

@dbanty dbanty closed this Aug 24, 2025
This was referenced Aug 26, 2025
github-merge-queue bot pushed a commit that referenced this pull request Aug 26, 2025
> [!IMPORTANT]
> Merging this pull request will create this release

## Breaking Changes

### Change some union variant names

When creating a union with `oneOf`, `anyOf`, or a list of `type`, the
name of each variant used to be `type_{index}`
where the index is based on the order of the types in the union.

This made some modules difficult to understand, what is a
`my_type_type_0` after all?
It also meant that reordering union members, while not a breaking change
to the API, _would_ be a breaking change
for generated clients.

Now, if an individual variant has a `title` attribute, that `title` will
be used in the name instead.
This is only an enhancement for documents which use `title` in union
variants, and only a breaking change for
_inline models_ (not `#/components/schemas` which should already have
used more descriptive names).

Thanks @wallagib for PR #962!

## Features

### Support patterned and default HTTP statuses

HTTP statuses like `2XX` and `default` are now supported!

A big thank you to:
- @PSU3D0 for PR #973 (eons ago 😅)
- @obs-gh-peterkolloch for PR #1300
- @goodsonjr for PR #1304

Closes #1271 and #832

> [!NOTE]
> Custom template users: the `endpoint.responses` type has changed quite
a bit. Check out #1303 for the changes.

Co-authored-by: knope-bot[bot] <152252888+knope-bot[bot]@users.noreply.github.com>
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.

2 participants