Can I define multiple callback methods depending on the call method?

He is my current custom API:

add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/form', '/get', array(
    'methods' => WP_REST_Server::READABLE,
    'callback' => 'get_form'
  ));
});


add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/form', '/post', array(
    'methods' => 'POST',
    'callback' => 'post_form'
  ));
});

Here is something I would like to write, but I’m not sure if it is possible.
What I’m sure is that this syntax i

add_action( 'rest_api_init', function () {
  register_rest_route('my-project/v1/', '/form',
array(
    'methods' => 'GET',
    'callback' => 'GET_form',
  ), array(
    'methods' => 'POST',
    'callback' => 'post_form',
  ), );
});

1 Answer
1

Check if your code looks like this because in the question you pass each method as separate function arguments (I have overlooked it earlier)

add_action( 'rest_api_init', function () {

    register_rest_route('my-project/v1/', '/form', 
        array(
            array('methods' => 'GET',
                 'callback' => 'GET_form',
            ), 
            array('methods' => 'POST',
                 'callback' => 'post_form'
            )
        ) 
    );
});

As you can read in documentation:

Parameters #

$args – (array) (Optional)

Either an array of options for the endpoint, or an array of arrays for multiple methods.
Default value: array()

Leave a Comment