WP REST API запросы с поддержкой Postman: примеры и практические советы

WordPress REST API – мощный инструмент для разработки и интеграции внешних сервисов с вашим сайтом. Для эффективного тестирования и отладки запросов к WP REST API часто используют Postman – удобный инструмент для отправки HTTP-запросов и анализа ответов. В этой статье мы подробно разберём, как грамотно настраивать и выполнять запросы к WP REST API с помощью Postman, а также рассмотрим примеры полезных запросов и автоматизацию тестирования.

Зачем использовать Postman для работы с WP REST API

Postman позволяет разработчикам быстро и наглядно создавать, отправлять и тестировать REST-запросы без необходимости написания кода. Это особенно полезно при работе с WordPress API, где часто требуется проверить авторизацию, формат ответа, работу фильтров и пагинацию.

Основные преимущества Postman для WP REST API:

  • Поддержка всех HTTP методов (GET, POST, PUT, DELETE и др.)
  • Удобная работа с заголовками, авторизацией и параметрами
  • Возможность сохранять коллекции запросов и делиться ими
  • Автоматизация тестов с помощью скриптов на JavaScript

Это значительно ускоряет процесс разработки и снижает количество ошибок.

Настройка Postman для запросов к WP REST API

Базовый GET запрос

Чтобы получить список постов, достаточно отправить GET-запрос на адрес:

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

В Postman введите этот URL, выберите метод GET и нажмите Send. В ответе вы увидите JSON с данными постов.

Авторизация с помощью cookie или токена

Для выполнения запросов, требующих авторизации (например, создание поста), нужно передать в запрос заголовок авторизации. Рассмотрим два распространённых способа.

1. Авторизация через cookie WP

Если вы работаете с Postman в браузере, можно передать cookie авторизованного пользователя, скопировав их из браузера и добавив в заголовки запроса:

Cookie: wordpress_logged_in_abcdef1234567890=somevalue;

Это позволит выполнять запросы от имени пользователя.

2. Авторизация через JWT-токен

Для более безопасного и удобного способа рекомендуем использовать JWT (JSON Web Token). Для этого установите плагин JWT Auth и настройте его согласно документации.

После получения токена отправьте его в заголовках:

Authorization: Bearer your_jwt_token_here

Примеры полезных запросов к WP REST API в Postman

Получение постов с фильтрацией и сортировкой

Например, получить 5 последних постов определённой категории с ID 12:

GET https://example.com/wp-json/wp/v2/posts?categories=12&per_page=5&orderby=date&order=desc

Параметры:

  • categories=12 — фильтр по категории
  • per_page=5 — количество постов на странице
  • orderby=date — сортировка по дате
  • order=desc — порядок сортировки (по убыванию)

Создание нового поста с помощью POST-запроса

Пример запроса для создания поста (требуется авторизация):

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

Headers:
Authorization: Bearer your_jwt_token_here
Content-Type: application/json

Body (raw JSON):
{
  "title": "Новый пост через REST API",
  "content": "Содержимое поста",
  "status": "publish"
}

Если всё сделано верно, в ответе будет информация о созданном посте.

Обновление мета-полей через кастомный эндпоинт

Если на вашем сайте есть кастомные метаполя, для их обновления можно создать собственный REST API эндпоинт. Например:

add_action('rest_api_init', function () {
  register_rest_route('wpapi/v1', '/update-meta/(?P<id>\d+)', array(
    'methods' => 'POST',
    'callback' => 'wpapi_update_post_meta',
    'permission_callback' => function () {
      return current_user_can('edit_posts');
    },
  ));
});

function wpapi_update_post_meta(\WP_REST_Request $request) {
  $post_id = $request->get_param('id');
  $meta_key = $request->get_param('meta_key');
  $meta_value = $request->get_param('meta_value');

  if (update_post_meta($post_id, $meta_key, $meta_value)) {
    return new \WP_REST_Response('Meta updated', 200);
  } else {
    return new \WP_REST_Response('Failed to update meta', 500);
  }
}

В Postman отправляйте POST-запрос с параметрами meta_key и meta_value в теле запроса.

Автоматизация тестирования WP REST API в Postman

Postman позволяет писать тесты на JavaScript, которые выполняются после получения ответа. Например, проверка успешного кода ответа:

pm.test('Статус ответа 200', function () {
  pm.response.to.have.status(200);
});

Или проверка наличия нужного поля в ответе:

pm.test('Ответ содержит поле title', function () {
  var jsonData = pm.response.json();
  pm.expect(jsonData).to.have.property('title');
});

Тесты помогают быстро выявлять ошибки и гарантировать стабильность API при изменениях.

Советы и рекомендации по работе с WP REST API и Postman

  • Используйте переменные окружения в Postman для хранения URL сайта и токенов — так проще переключаться между разными средами.
  • Для сложных проектов создайте коллекции запросов с описаниями и примерами.
  • Регулярно обновляйте токены авторизации и проверяйте права доступа.
  • Подключайте плагины оптимизации и безопасности, например Clearfy Pro, чтобы защитить REST API от нежелательных запросов.

Использование Postman в связке с WP REST API значительно упрощает разработку и отладку, позволяет быстро находить и исправлять ошибки, а также автоматизировать тестирование. Освоив эти инструменты, вы сможете создавать более надёжные и удобные интеграции для вашего сайта на WordPress.

Шаблоны для WP Плагины для WP