Add report API formats#15148
Open
samiat4911 wants to merge 1 commit into
Open
Conversation
cbb4241 to
b811c2e
Compare
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.
Description
Closes #12018.
This PR adds selectable output formats to the report generation API. The existing API behavior remains the default by keeping JSON as the default
report_type, while callers can now requestHTML,CSV, orExcel.The request serializer now accepts a
report_typefield:The shared API report helper now formats the response based on the requested type:
The existing CSV and Excel UI export views were refactored slightly so their response builders can be reused by the API without changing the existing UI export routes:
The four existing report generation API actions now pass the validated
report_typeinto the shared response helper:During testing, API requests exposed that
report_url_resolver()could raiseKeyErrorwhenHTTP_HOSTwas not present in request metadata. This PR adds a safe fallback:Test results
Added targeted API tests covering:
report_typevalidation.Test class added:
Documentation
Please update any documentation when needed in the documentation folder)
Checklist
This checklist is for your information.
dev.dev.bugfixbranch.