Wordpress REST API Проблема - PullRequest
1 голос
/ 06 марта 2020

Я сейчас пытаюсь обернуть голову вокруг Wordpress и его связи с REST API. Все эти проблемы возникают только в контексте разработки плагинов. До сих пор я настроил свою конечную точку и написал свой обратный вызов, который будет выполняться всякий раз, когда кто-то отправляет GET-запрос на указанную конечную точку. Однако мой обратный вызов никогда не вызывается. Это файл, который я написал до сих пор.

  /*
   * Plugin Name: cola-learning
  */

  if(!defined('ABSPATH')){
      die;
  }

  if(!function_exists('add_action')){
      echo 'You cant access this ressource!';
      exit;
  }

  function PrintRESTResponse()
  {
      return rest_ensure_response("student");
  }

  function SetupREST()
  {
      return register_rest_route("student/v1","/view/",[
          'methods' => 'GET',
          'callback' => 'PrintRESTResponse'
      ],false);
  } 

  add_action('rest_api_init','SetupREST');

Возможно, это также может помочь, если я дам некоторую справочную информацию о моей машине для разработки: - ОС: Windows 10 - Сервер: Apache Веб-сервер (входит в состав XAMPP) - Версия Wordpress: 5.3.2 - PHP Версия: 7.4 - Среда разработки: Eclipse 2019-12 CDT (с PHP Plugin)

От мои исследования, все должно работать нормально. Тем не менее, это не: / Я пропустил что-то важное?

Обновление:

WordPress REST API Routing

WordPress is наличие маршрута по умолчанию для всех запросов, направленных в REST API (по крайней мере, если вы используете XAMPP с модулем приложения Bitnami WordPress). Теперь, если кто-то хочет отправить запрос в указанный API REST, ему необходимо использовать URL-адрес в форме ip: port / wp-json / rest_route . ip повторяет IP-адрес сервера, на котором размещен WordPress. порт - порт указанного сервера. Однако wp- json - это часть, которая отличается от обычного запроса от запроса к REST API. Все после этой части ( rest_route ) является маршрутом отдыха, который я определил в приведенном выше исходном коде.

Что пошло не так?

Мой запрос был направлен не на ту конечную точку. Поэтому я использовал URL 'localhost: wpPort / wordpress / student / v1 / view /'. Тем не менее, часть 'wp-json /' отсутствует. Поэтому WordPress будет искать страницу, которая не существует в первую очередь. Вместо этого я должен был использовать URL 'localhost: wpPort / wordpress / wp-json / student / v1 / view /'.

1 Ответ

0 голосов
/ 06 марта 2020

После устранения неполадок выясняется, что в используемом для проверки URL-адресе пропущена часть пути к конечной точке.

Вот правильный путь для проверки вновь зарегистрированной конечной точки.

localhost:80/wordpress/wp-json/student/v1/view/

Вот еще кое-что о конечных точках API WP Rest:

https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...