fix(rest): coerce string parameters (reject object values) #1750
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.
Add a missing coercion step for string parameters and prevent the situation when a string value provided by the HTTP client and converted into an object or an array by query-string parser is passed as-is to the controller method, violating the endpoint contract and TypeScript declaration.
I discovered this problem while working on #1679. Without this change, endpoints like
TodoListController#countare incorrectly accepting object values for theirwhereparameter described astype: string.https://github.com/strongloop/loopback-next/blob/d65a17fab7ce44b7977e9c03388f5684558475f2/examples/todo-list/src/controllers/todo-list.controller.ts#L37-L39
Checklist
npm testpasses on your machinepackages/cliwere updatedexamples/*were updated