Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Wordpress Rest API returns error

I'am developing a plugin for wordpress and have trouble with the Rest API. On my test server it works without a problem. (v4.6.6) On a different server (v4.4.10) the API returns this error message:

{"code":"rest_invalid_handler","message":"
Der Handler f\u00fcr die Route ist ung\u00fcltig","data":{"status":500}}%

The message is in german and means "The handler for the route is invalid." Don't understand why they translate the error messages for an API. Makes no sense for me. :)

The routes on the http://domain/wp-json are equal. Maybe an problem with the different WP versions?

Definition of the route:

function __construct() {
    add_action( 'rest_api_init', function(){
        register_rest_route( 'test_namespace', 'ping', array(
            'methods' => 'POST',
            'callback' => array($this, 'ping_test'),
            'permission_callback' =>  array($this, 'myhacks_permission_callback'),
        ) );
    } );
}

Thanks for help.

like image 956
Schmidko Avatar asked Aug 15 '17 18:08

Schmidko


Video Answer


2 Answers

I had the same issue. It seems that method ping_test cannot be private. If you change it to public, the error disappears.

like image 95
Kresimir Plese Avatar answered Sep 29 '22 02:09

Kresimir Plese


Take a look at the WordPress core and you can see that the method passed as the callback aka ping_test must be callable.

So this error triggers only when that method doesn't exist (for example I just encountered it because of a typo) or if is not accessible(like a protected or private method)

like image 20
Andrei Avatar answered Sep 29 '22 01:09

Andrei