Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Throw error if multiple matched endpoint formals are found #637

Merged
merged 19 commits into from Aug 12, 2020

Conversation

schloerke
Copy link
Collaborator

@schloerke schloerke commented Aug 7, 2020

Pivoting on approach of #578 to throw an error if multiple args are found vs trying to merge args.

  • Store the parsed post body into req$postBodyParsed to avoid possible conflicts with req$args
  • Provides a message about how to address the multiple matched formals
  • If only req and res are the available formals, only provide the Plumber req and res. This allow for routes with many arguments matching to req and res not fail and allow users to retrieve the proper information from the Plumber req object

Questions:

  • Should this be enforced for all POST requests? (Only allow named arguments: req, res)
    • No. Allow for req, req to be given only.
  • Should path parameters be put into a special location?
    • Yes. req$argsPath. And query parameters at req$argsQuery

PR task list:

  • Update NEWS
  • Add tests
  • Update documentation with devtools::document()

@schloerke schloerke added this to the v1.0.0 - Next CRAN release milestone Aug 7, 2020
@schloerke schloerke requested a review from cpsievert Aug 7, 2020
@schloerke schloerke marked this pull request as ready for review Aug 7, 2020
R/plumber.R Outdated Show resolved Hide resolved
R/plumber.R Outdated Show resolved Hide resolved
R/plumber-step.R Outdated Show resolved Hide resolved
R/plumber-step.R Outdated Show resolved Hide resolved
Copy link
Contributor

@cpsievert cpsievert left a comment

See comments

schloerke and others added 4 commits Aug 7, 2020
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
For testing purposes, also set req and res if they do not exist.
* master:
  `parser_octet()` returns a named list of filename to content (#636)
  Add `validate_api_spec()` (#633)
  Add another situation for no context JSON post body (#635)
  fix dockerfile extra buildargs
  Misnamed properties private$filename (#638)
@schloerke schloerke requested a review from cpsievert Aug 7, 2020
NEWS.md Outdated Show resolved Hide resolved
R/plumber-step.R Outdated Show resolved Hide resolved
@schloerke schloerke requested a review from cpsievert Aug 12, 2020
NEWS.md Show resolved Hide resolved
schloerke and others added 2 commits Aug 12, 2020
Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
Copy link
Contributor

@cpsievert cpsievert left a comment

LGTM pending suggestions for example

Co-authored-by: Carson Sievert <cpsievert1@gmail.com>
@schloerke schloerke merged commit 38d5fd7 into master Aug 12, 2020
16 checks passed
@schloerke schloerke deleted the multiple_matched_args branch Aug 12, 2020
schloerke added a commit that referenced this pull request Aug 12, 2020
* master:
  Throw error if multiple matched endpoint formals are found (#637)
schloerke added a commit that referenced this pull request Aug 12, 2020
* master:
  Throw error if multiple matched endpoint formals are found (#637)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants