feat: Implement IntoResponseParts for Redirect#3660
Open
HaiqalAly wants to merge 4 commits intotokio-rs:mainfrom
Open
feat: Implement IntoResponseParts for Redirect#3660HaiqalAly wants to merge 4 commits intotokio-rs:mainfrom
HaiqalAly wants to merge 4 commits intotokio-rs:mainfrom
Conversation
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.
Motivation
I saw the feature request in #3637 and wanted to try helping out!
The goal is to allow Redirect to be used as part of a response tuple, which makes it much easier to provide a custom body alongside a redirect. Currently, you have to manually build the response with StatusCode and headers to achieve this.
Solution
I've implemented IntoResponseParts for Redirect, so it can now be used like this:
To make this work, I had to add a set_status method to ResponseParts in axum-core, as I couldn't find a way to modify the status code otherwise.
umm... Just realized what I did and I admit I felt scared because I touched the core crate! 😅 I wasn't sure if axum-core changes are strictly reserved for maintainers or if there are stability guarantees I might be unknowingly breaking. I think this change is safe since it's purely additive, but please let me know if I've overstepped or if there's a different way you prefer this to be handled. I'm very happy to close this or adjust it based on your guidance.