feat(generator): Add ParseErrorLogger #680
Merged
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.
Problem
Sometimes, the back-end changes the response structure unexpectedly. For example, our app expects this:
but we get this instead:
Logging these discrepancies would be really useful. To make the logs as helpful as possible, we need to capture:
CheckedFromJsonException
fromjson_serializable
).The most logical place for such logging is within the client.
Solution
Let's introduce a new entity -
ParseErrorLogger
:This entity can be injected into our client:
And this entity will be called if parsing fails.
For example, this is
rest_client.g.dart
. As shown in theAfter
example,errorLogger
is called if there are any issues with parsing: