How to define a query parameter with REST API?

I’m trying to define a GET REST API endpoint with register_rest_route

register_rest_route supports defining a URL parameter and it is documented at https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/#arguments

I would love to define a list of query parameters and let WordPress handle the validation part. Is there an official way to do so?

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Yes, from the link you posted there are examples for both sanitising and validating the parameters. Validating does a check which can fail and block the API call from running; sanitising just does some operations to clean or interpret the parameter and does not stop the API call from running.

An example of validation, taken from the page:

<?php
add_action( 'rest_api_init', function () {
  register_rest_route( 'myplugin/v1', '/author/(?P<id>d+)', array(
    'methods' => 'GET',
    'callback' => 'my_awesome_func',
    'args' => array(
      'id' => array(
        'validate_callback' => function($param, $request, $key) {
          return is_numeric( $param );
        }
      ),
    ),
  ) );
} );

You can see in the second parameter of register_rest_route that this defines an endpoints like /author/1234

The format of the second parameter of register_rest_route breaks down as:

  • /author/ initial part of the URL to match
  • ?P a code specific to this function that means ‘parameter’. Note this is not included in the URL when called
  • <id> optional name for the parameter, used belows in args, not included as part of URL.
  • d+ the regex for this parameter


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x