Skip to content

Support using httpbin without flasgger#44

Closed
mgorny wants to merge 1 commit into
psf:mainfrom
mgorny:no-flasgger
Closed

Support using httpbin without flasgger#44
mgorny wants to merge 1 commit into
psf:mainfrom
mgorny:no-flasgger

Conversation

@mgorny

@mgorny mgorny commented Feb 3, 2024

Copy link
Copy Markdown

Make the dependency on flasgger optional. The dependency has been added relatively recently (i.e. before the original package was abandoned but after its last release), and it is only used to provide a more dynamic landing page. This is unnecessary for use of httpbin for testing, and it introduces an indirect dependency on Rust that is problematic.

With this change, flasgger is no longer installed by default. It can be enabled via "[flasgger]" extra. When flasgger is not available, httpbin redirects to the "legacy" index page.

@mgorny

mgorny commented Feb 15, 2024

Copy link
Copy Markdown
Author

Hmm, 302 response for / breaks the test suite of httpcore. I'm going to change this later today to instead serve the old index without the redirect.

Make the dependency on flasgger optional.  The dependency has been added
relatively recently (i.e. before the original package was abandoned but
after its last release), and it is only used to provide a more dynamic
landing page.  This is unnecessary for use of httpbin for testing,
and it introduces an indirect dependency on Rust that is problematic.

With this change, flasgger is no longer installed by default.  It can be
enabled via "[flasgger]" extra.  When flasgger is not available, httpbin
redirects to the "legacy" index page.
mgorny added a commit to mgorny/vcrpy that referenced this pull request Feb 16, 2024
Make the tests slightly more flexible to match both the flasgger-based
and legacy httpbin index.  This is needed for compatibility with
psf/httpbin#44 when flasgger is not installed
(e.g. on architectures that are not supported by Rust).
@ml31415

ml31415 commented Apr 10, 2024

Copy link
Copy Markdown

Seems to be a duplicate of #32 . But either way, would be great to see flasgger removed as dependency.

@ml31415 ml31415 mentioned this pull request Apr 10, 2024
deronnax pushed a commit to deronnax/vcrpy that referenced this pull request Dec 8, 2025
Make the tests slightly more flexible to match both the flasgger-based
and legacy httpbin index.  This is needed for compatibility with
psf/httpbin#44 when flasgger is not installed
(e.g. on architectures that are not supported by Rust).
@kevin1024

Copy link
Copy Markdown

Thanks @mgorny — your missing-flasgger app.logger.warning is carried over into #65, which takes the #32 approach (flasgger in the mainapp extra so the Docker image keeps its homepage), refreshed against main with a regression test. You're credited as co-author there.

Closing in favor of #65.

@kevin1024 kevin1024 closed this Jun 16, 2026
pull Bot pushed a commit to sysfce2/httpbin that referenced this pull request Jun 16, 2026
flasgger is only needed to render the Swagger UI homepage and /spec.json on
httpbin.org; it's dead weight (and an extra dependency tree, including an
indirect Rust build dep) for the common case of using httpbin as a test
library. It also blocks packaging httpbin for distros that can't ship
flasgger's bundled, pre-minified JS (e.g. Fedora).

Move flasgger from the hard dependencies to the existing "mainapp" extra
(so the published Docker image, built with --extra mainapp, keeps the fancy
homepage) and guard all the Swagger setup behind its availability. When
flasgger is absent, the static legacy landing page is served at / and a
warning is logged.

Adds a subprocess-based regression test that blocks flasgger and asserts /
falls back to the static page with a 200 instead of erroring.

Closes psf#26. Supersedes psf#32 and psf#44.

Co-Authored-By: Adam Williamson <awilliam@redhat.com>
Co-Authored-By: Michał Górny <mgorny@gentoo.org>
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.

3 participants