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.