Предположим, что перед нами стоит задача — написать конечную точку REST API. Также давайте предположим, что мы ничего не знаем про REST API.
Задача
Главная страница моего сайта содержит блок, включающий в себя магическое слово, и я буду использовать REST API для получения этого слова и вывода его на своем сайте.
<div id="tomsword">... word goes here ...</div>
Что мне потребуется:
- Магическое слово – пусть это будет “moomins”
- Конечная точка REST API на моем сайте для отправки слова
- Немного JS-кода, который будет обращаться к API для получения магического слова
Конечная точка
Эта часть самая простая. Конечные точки REST API находятся в /wp-json, и они имеют свое пространство имен, что позволяет избежать смешивания с конечными точками от других плагинов. Моя конечная точка находится по адресу tomjn.com/wp-json/tomjn/v1/test.
При обращении к конечной точке я буду возвращать слово «moomins». Для этого я подготовил специальную функцию:
function tomjn_rest_test() { return "moomins"; }
Я зарегистрировал конечную точку и сообщил WP, что нужно делать, когда эта точка вызывается:
add_action( 'rest_api_init', function () { register_rest_route( 'tomjn/v1', '/test/', array( 'methods' => 'GET', 'callback' => 'tomjn_rest_test' ) ); } );
Отлично! Теперь у меня появилась конечная точка, и мы можем протестировать ее, посетив ссылку:
https://tomjn.com/wp-json/tomjn/v1/test
Использование конечной точки в теме
Давайте напишем некоторый JS-код в нашем шаблоне:
<script> jQuery.ajax({ url: <?php echo wp_json_encode( esc_url_raw( rest_url( 'tomjn/v1/test' ) ) ); ?> }).done(function( data ) { jQuery( '#tomsword' ).text( data ); }); </script>
Все очень просто! Теперь наша главная страница выполняет определенный код при своей загрузке, который получает слово с помощью REST API и помещает его в div.
Написание конечных точек REST API – очень простая и быстрая задача. Конечные точки очень легко защитить. Нет никаких причин для использования AJAX API в будущем.