web-dev-qa-db-fra.com

"rest_no_route" - Erreur de débogage

J'utilise Wordpress 4.9.5 et je souhaite créer un point de terminaison personnalisé comme suit:

<?php
add_action('rest_api_init', 'miningRigsRoutes');

function miningRigsRoutes()
{
    register_rest_route('miningRigs/v1', 'createRig', array(
        'methods' => WP_REST_SERVER::CREATABLE,
        'callback' => 'createMiningRig',
    ));

    register_rest_route('miningRigs/v1', 'allRigs', array(
        'methods' => WP_REST_SERVER::READABLE,
        'callback' => 'allMiningRigs',
    ));
}

function createMiningRig($data)
{
    //var_dump($data);
    //print_r($data);
    return "Thanks for using the API";
}

function allMiningRigs() {
    return "All mining Rigs";
}

L'URL que j'utilise est:

http://localhost/wordpress-site/wp-json/miningRigs/v1/createRig/

Cependant, je reçois ce qui suit en retour du post-route:

{"code":"rest_no_route","message":"No route was found matching the URL and request method","data":{"status":404}}

Le get-route fonctionne parfaitement bien!

Je n'utilise actuellement aucun plugin tiers.

Des suggestions comment déboguer cette erreur pour le post-route? De mon code, tout va bien!

J'apprécie vos réponses!

1
Kare

Vous ne devriez pas obtenir un rappel POST uniquement. Le code ci-dessous crée un appel POST uniquement

register_rest_route('miningRigs/v1', 'createRig', array(
    'methods' => WP_REST_SERVER::CREATABLE,
    'callback' => 'createMiningRig',
));

Vérifiez http: // localhost/wordpress-site/wp-json/miningRigs/v1 qui indique que vous ne pouvez que POST sur createRig

Je viens de copier/coller votre code + ajouté le https://pressupinc.com/blog/2013/07/minimum-viable-wordpress-plugin/ puis activé le plugin sur 4.9.5 et cela fonctionne comme prévu sur a WP 4.9.5

3
Clemens Tolboom