feat: Add GraphQL variables support (#576)#1712
Open
deepak0x wants to merge 1 commit into
Open
Conversation
Closes foss42#576 Adds a JSON variables editor below the query editor for GraphQL requests. Variables are stored as raw JSON text and merged into the request body as a parsed JSON object under the "variables" key, falling back to the raw string when the input is not valid JSON.
Contributor
Author
|
@ashitaprasad @animator ready for review. This uses the JSON text editor approach you suggested on #576. |
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.
PR Description
Adds GraphQL variables support to the request editor.
A dedicated JSON variables editor is shown below the query editor for GraphQL requests. Variables are stored as raw JSON text on
HttpRequestModeland merged into the outgoing request body as a parsed JSON object under the standard"variables"key, e.g.:{ "query": "query($id: ID!) { user(id: $id) { name } }", "variables": { "id": "42" } }If the variables text is not valid JSON, the raw string is sent as-is so nothing is silently lost.
This follows the JSON-editor approach recommended by the maintainer on the issue (a simple JSON text editor like the JSON content-type body, rather than a form/key-value editor that parses and rebuilds types), which also keeps the door open for follow-ups like filters & mutations.
Changes
HttpRequestModel: newvariablesfield +hasVariablesgetter (codegen regenerated).getGraphQLBody: include parsedvariablesin the body when present.update(): threadvariablesthrough.Related Issues
Checklist
mainbranch before making this PRflutter upgradeand verify)flutter test) and all tests are passingAdded/updated tests?
OS on which you have developed and tested the feature?