This repository was archived by the owner on Feb 22, 2023. It is now read-only.
Draft
Conversation
This allows us to "easily" deploy Django to a path prefix but has a ton of caveats and pitfalls that need to be addressed in subsequent commits. Specifically: tests will not work with the current definition, nor will our generated documentation. All of it assumes that the API is deployed at the root of the URL. We can change it to use `BASE_URL`, but then tests will fail if `PATH_PREFIX` is defined unless we switch to `reverse` retrieve the paths in tests. Doing this, however, creates a ton of circular imports.
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Fixes
Related to an effort to deploy the Django application to an
/apipath on a shared domain.Description
This work is still WIP and the PR exists mostly to demonstrate the current difficulties. All of the troublesome parts (the circular imports) can be avoided if we switch to Caddy instead of Nginx and just re-write the path before forwarding it to the Django service. See the commit descriptions for more details on the issues.
Testing Instructions
Add a
PATH_PREFIXvariable to yourapi/.envfile. I usedPATH_PREFIX=totally_bogus_dude. Then navigate tohttp://localhost:50280/and confirm that nothing appears unless you to gohttp://localhost:50280/totally_bogus_dude/or whatever you set the PATH_PREFIX to.Note that right now the app won't start due to a circular import that I'm not sure how to resolve (and which can be avoided if we use Caddy instead, because we could bypass fixing the not-technically-safe ignoring of
reversein building URLs).Checklist
Update index.md).main) ora parent feature branch.
errors.
Developer Certificate of Origin
Developer Certificate of Origin