Make flasgger an optional dependency#65
Merged
Merged
Conversation
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 #26. Supersedes #32 and #44. Co-Authored-By: Adam Williamson <awilliam@redhat.com> Co-Authored-By: Michał Górny <mgorny@gentoo.org>
This was referenced Jun 16, 2026
|
Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes
flasggeroptional so httpbin can be installed (and packaged) without it. Closes #26.flasggerfrom harddependenciesinto the existingmainappextra. The published Docker image is built with--extra mainapp, so it keeps the Swagger UI homepage with no workflow change./and log a warning. With flasgger present, behavior is unchanged (/= Swagger UI,/legacy= static page)./falls back to the static page with a 200 (instead of erroring).Based on #32 (@AdamWill), with the missing-flasgger warning from #44 (@mgorny), refreshed against
mainand with a test added. Supersedes both.