ворд-пресс.рф
Решение

WordPress REST API: как проверить и использовать

Что такое REST API в WordPress, где искать endpoints, как безопасно выполнять запросы и почему бывает 401 или 403.

WordPress REST API позволяет программам получать и изменять данные сайта через HTTP. Для начала проверьте открытые endpoints, а для операций записи используйте отдельные учётные данные с минимальными правами.

Где находится REST API

На типовой установке WordPress начните с адреса:

https://example.com/wp-json/

Список опубликованных записей обычно доступен по маршруту:

https://example.com/wp-json/wp/v2/posts

Откройте адрес в браузере или выполните запрос GET. JSON-ответ со списком записей означает, что endpoint отвечает. Пустой список — не обязательно ошибка: опубликованных записей может не быть.

Простой публичный запрос

Для чтения опубликованных записей не требуются права администратора. Тест без токенов:

curl --fail --silent --show-error "https://example.com/wp-json/wp/v2/posts?per_page=3"

Замените example.com на свой домен. Если сайт требует авторизации для чтения, причина может быть в плагинах безопасности, настройках доступа или собственной конфигурации API.

Как безопасно авторизовать интеграцию

WordPress поддерживает Application Passwords — отдельные пароли для доступа программ через API. Используйте HTTPS и специального пользователя с только необходимыми правами. Не передавайте основной пароль администратора внешнему сервису.

Для проверки с собственным тестовым пользователем можно запросить текущую учётную запись:

curl --fail --silent --show-error \
  --user "API_USER:APPLICATION_PASSWORD" \
  "https://example.com/wp-json/wp/v2/users/me"

Не вставляйте реальный пароль в публичный терминал, скриншот или Git-репозиторий. В рабочей интеграции храните секреты вне исходного кода и используйте механизм секретов окружения.

Как сделать свой endpoint

Собственные маршруты регистрируют через register_rest_route() на хуке rest_api_init. Для всех маршрутов задайте permission_callback; публичность должна быть осознанным решением, а изменения данных требуют проверки прав и валидации параметров.

Не публикуйте endpoint, который изменяет настройки или заказы с permission_callback = __return_true. Для записи также нужны обработка ошибок, ограничение нагрузки и журналирование без утечки персональных данных.

Почему REST API возвращает 401, 403 или 404

  • 401 Unauthorized: серверу не переданы корректные данные аутентификации либо она не принята.
  • 403 Forbidden: пользователь аутентифицирован, но у него может не хватать полномочий; также возможна блокировка защитным слоем.
  • 404 Not Found: маршрут отсутствует, URL неверный или некорректно настроены постоянные ссылки и маршрутизация.

Начните с проверки /wp-json/, затем конкретного endpoint. Посмотрите сетевой ответ, логи PHP, правила защиты и Authorization на сервере. Не отключайте весь REST API ради устранения одной ошибки.

REST API и WooCommerce — не одно и то же

WordPress использует собственные пространства wp/v2. У WooCommerce есть API товаров, заказов и других торговых сущностей: например, wc/v3 при наличии активного WooCommerce. Правила доступа и выдача ключей у WooCommerce могут отличаться от обычных Application Passwords.

Связанные материалы: WooCommerce, создание плагина, безопасность WordPress.

Источники: руководство WordPress REST API и Application Passwords.

Источник: https://developer.wordpress.org/rest-api/using-the-rest-api/

Материал был полезен?

Помогите нам сделать материалы точнее и понятнее.