web-dev-qa-db-fra.com

Est-il toujours utile d’utiliser json endpoint ep_mask maintenant qu’il ya la nouvelle api rest?

Je me demandais ... Peut-être que je ne comprends pas le problème, je ne sais pas. Je pense que l’API de réécriture est toujours utile pour créer de belles URLs pour les utilisateurs réguliers. Mais je ne suis pas sûr d'ajouter un noeud final JSON via ep_masks (par exemple: https://make.wordpress.org/plugins/2012/06/07/rewrite-endpoints-api/ ).

N'est-ce pas une chose déjà couverte par la nouvelle api de repos? Est-ce que je manque quelque chose?

Et au fait ... Il est temps de créer une balise 'rest-api' ici http://wordpress.stackexchange.com ?

1
Luca Reghellin

Je pense que vous devriez cesser d'utiliser les points de terminaison de réécriture pour gérer les réponses JSON. Au lieu de cela, vous pouvez et devez utiliser l'API REST.

Donc, au lieu de cela:

function makeplugins_add_json_endpoint() {
    add_rewrite_endpoint( 'json', EP_PERMALINK | EP_PAGES );
}
add_action( 'init', 'makeplugins_add_json_endpoint' );

Ensuite, gérez vous-même la réponse JSON. Vous pouvez et devez faire quelque chose comme ceci:

add_action( 'rest_api_init', 'cyb_register_api_endpoints' );
function cyb_register_api_endpoints() {

    $namespace = 'myplugin/v1';

    register_rest_route( $namespace, '/myendpoint/', array(
        'methods' => 'GET',
        'callback' => 'cyb_myendpoint_callback',
    ) );

}

function cyb_myendpoint_callback() {

    //$response can be a Object, JSON, array
    $response = [];

    return new WP_REST_Response( $response );

}

En conclusion: un noeud final JSON doit être géré maintenant via REST API.

1
cybmeta