Variable resolution

Micronaut tries to populate method arguments in the following order:

  1. URI variables like /{id}.

  2. From query parameters if the request is a GET request (e.g. ?foo=bar).

  3. If there is a @Body and request allows the body, bind the body to it.

  4. If the request can have a body and no @Body is defined then try to parse the body (either JSON or form data) and bind the method arguments from the body.

  5. Finally, if the method arguments cannot be populated return 400 BAD REQUEST.