REST API: Nu s-a găsit nicio rută care să corespundă URL-ului și metodei de solicitare
Am probleme la adăugarea unei rute personalizate REST API în WordPress. Folosind propriul meu plugin, am înregistrat ruta astfel:
add_action( 'rest_api_init', function() {
register_rest_route( $namespace, 'handler_mijnenergie', array(
'methods' => '\WP_REST_Server::CREATABLE ',
'callback' => [ $this, 'handle_energie_data' ]
), false );
} );
Când apelez namespace-ul "/wp-json/watz/v1" primesc un răspuns corect în Postman că ruta este afișată.
Cu toate acestea, când încerc să accesez cererea rutei direct, primesc o eroare 404. Până acum am încercat:
- Rescrierea permalink-urilor
- Utilizarea fișierului .htaccess standard WordPress
- Dezactivarea plugin-urilor
- Modificarea metodei/namespace-ului și a cererii
- Testarea rutelor altor plugin-uri precum Yoast sau Contact Form 7 (acestea funcționează)
Aveți vreo idee ce ar putea cauza această problemă și ce trebuie să modific pentru a o face să funcționeze?

Acest lucru se întâmplă din cauza modului în care ați definit metodele acceptate:
'methods' => '\WP_REST_Server::CREATABLE ',
Nu ar trebui să folosiți ghilimele în jurul acesteia. WP_REST_Server::CREATABLE
este un șir de caractere care este echivalent cu 'POST'
, dar prin adăugarea ghilimelelor, setați literalmente metoda ca '\WP_REST_Server::CREATABLE'
, care nu este o metodă HTTP validă. Puteți vedea acest lucru în răspunsul la endpoint-ul de namespace.
Setați-o astfel:
'methods' => WP_REST_Server::CREATABLE
Sau, dacă fișierul dvs. utilizează un namespace PHP, astfel:
'methods' => \WP_REST_Server::CREATABLE
Sau adăugați aceasta în partea de sus a fișierului:
use WP_REST_Server;
Apoi asigurați-vă că atunci când accesați ruta direct, utilizați metoda corectă. Dacă utilizați WP_REST_Server::CREATABLE
, atunci endpoint-ul va răspunde doar la cererile POST
, astfel încât cererile GET
vor returna un 404, ceea ce include și atunci când accesați endpoint-ul prin browser.
