-
When the content type of the request is JSON, but the body cannot be parsed as such.
This filter allows changes to the request/response body based on a path regex and content type.
Changes take the form of JSON Patches as defined in RFC 6902.
Name: body-patcher
Default Configuration: body-patcher.cfg.xml
Released: v8.0.0.0
Bundle: repose-filter-bundle
This filter has no hard dependency on any other filter.
However, the API Validator filter can be used to validate the request body before attempting to apply patches.
| Status Code | Reasons |
|---|---|
|
|
|
|
|
|
This configuration will apply a set of patches to HTTP messages for various resources. In doing so, it will demonstrate all of the functions of this filter.
<body-patcher xmlns="http://docs.openrepose.org/repose/bodypatcher/v1.0">
<change> (1)
<request> (2)
<json> (3)
[
{
"op" : "replace",
"path" : "/a",
"value" : 6
},{
"op" : "remove",
"path" : "/b"
}
]
</json>
</request>
<response> (4)
<json> (5)
[
{
"op" : "add",
"path" : "/d",
"value" : false
}
]
</json>
</response>
</change>
<change path="/foo/bar/.*"> (6)
<response>
<json>
[
{
"op" : "remove",
"path" : "/b"
}
]
</json>
</response>
</change>
</body-patcher>
| 1 | Declares a change to be made. The absence of the path attribute indicates that this change applies to requests with any path. |
| 2 | Contains the set of patches to be applied to the request.
This element is optional, but at least one of the request or response elements must be present. |
| 3 | The action to take for JSON content.
The content of this element should be a JSON patch.
In this case, the JSON patch will replace the value of the a field with 6, and remove the b field. |
| 4 | Contains the set of patches to be applied to the response.
This element is optional, but at least one of the request or response elements must be present. |
| 5 | In this case, the JSON patch will add a d field with a value of false. |
| 6 | Declares a change to be made, but only to requests with a path matching the regular expression /foo/bar/.*. |