feat: add native support for application/json-patch+json in body parsers #1988
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.
Pull Request Description
This pull request adds native support for the MIME type application/json-patch+json to Restify’s core body parsers. This enables proper parsing of HTTP PATCH requests that use JSON Patch documents, without relying on external middleware or regex fallbacks.
Changes Made
File:
lib/plugins/bodyParser.js
Modification:
Added a new
case
to the MIME type switch in theparseBody
function:Impact:
Ensures that requests with
Content-Type: application/json-patch+json
are parsed using the standard JSON parser.File:
lib/plugins/jsonBodyParser.js
Modification:
Extended the MIME type check in the
parseJson
function to explicitly includeapplication/json-patch+json:
Impact:
Guarantees that the JSON parser is triggered for requests using the JSON Patch MIME type, even when the content type includes charset parameters.
Expected Behavior
Manual Testing
Consideration
This implementation was intentionally scoped to be minimal and non-invasive, aiming to integrate support for JSON Patch with the least possible impact on existing parsing logic or behavior. The changes are isolated, additive, and follow the established structure of Restify’s core.