WordPress REST API — ядро CMS

Система управления контентом (CMS) WordPress пользуется большой популярностью. По сравнению с другими CMS, ее относительно легко использовать для создания веб-сайтов для различных нужд. Поддерживать веб-сайты также легко для редакторов с хорошими навыками работы с Office. Более того, веб-администраторы могут получить доступ к более чем 55 000 плагинов, которые выполняют целый ряд задач веб-сайта и в основном доступны бесплатно в базовой версии.

Совет

Мы обобщили все преимущества для вашего сайта WordPress в ценовых моделях «Essential», «Business» и «Unlimited». Воспользуйтесь простым процессом настройки, интегрированной системой безопасности и нашей оптимизированной платформой для вашего WordPress хостинга.

Что такое WordPress REST API?

WordPress REST API — это интерфейс, который позволяет взаимодействовать с базой данных, используемой WordPress. API расшифровывается как «интерфейс прикладного программирования». Он обеспечивает связь между различными программами в соответствии с определенной системой. Это можно сравнить с диалогом между двумя людьми, которые понимают друг друга только тогда, когда используют один и тот же язык. Более подробную информацию вы можете найти в нашей статье об API.

Аббревиатура REST означает «передача репрезентативного состояния». Принципы обмена информацией были разработаны американским компьютерщиком Роем Филдингом в 1994 году:

  • Единообразие: URL-адреса для доступа к ресурсам должны быть единообразными, согласованными и доступными с помощью общего подхода, например GET.
  • Разделение клиент-сервер: Если технология на стороне сервера меняется (например, WordPress), приложение на стороне клиента (например, app) должно иметь возможность доступа к нему.
  • Нестационарность: Сервер не меняет своего состояния при новом запросе через API и не хранит запрос.
  • Возможность кэширования: Это обеспечивает высокую скорость и соответствие на стороне сервера или клиента.
  • Многоуровневая система: Доступ возможен на нескольких уровнях.
  • Код по требованию (опционально): Код для локального исполнения отправляется клиенту только по мере необходимости.

В WordPress эти требования являются стандартными в ядре — т.е. сердце системы управления контентом — начиная с версии 4.7. До этого, до 13 мая 2018 года, существовал плагин «WP REST API (WP API)». Начиная с версии WordPress 5.x, в ядро системы были добавлены элементы, расширяющие существующие возможности коммуникации с другими (веб-) приложениями и приложениями.

Для чего используется WordPress REST API?

Интерфейс обеспечивает прямую связь с базой данных, используемой WordPress, которая содержит всю информацию веб-сайта. Эта база данных используется с системой управления базами данных MySQL — программой с открытым исходным кодом. Для связи существуют команды, которые позволяют получить доступ через «встроенный» WordPress API. Здесь возможны несколько подходов:

Терминальный доступ к базе данных

WordPress REST API позволяет получить доступ к содержимому сайта WordPress через командную строку в Windows:

  • Нажмите правой кнопкой мыши на символ Windows > «Выполнить» > введите «cmd» в окне > «OK».
  • Активируйте поиск на панели задач > введите «cmd» > нажмите на приложение «Командная строка».

Или Терминал в macOS:

  • Введите комбинацию клавиш «cmd» + [пробел] + «Терминал» и дважды щелкните по результату поиска
  • В верхней строке меню на рабочем столе выберите «Перейти к» > «Служебные программы» и в появившемся окне дважды щелкните на «Терминал»
  • В «Dock» нажмите на «Программы» > «Служебные программы» > «Терминал».

Введите фактические команды в мигающую подсказку на экране, например:

C:UsersYourUserName>_

Введите следующую команду:

curl -X OPTIONS -i https://yourdomain.com/wp-json/

Нажмите «Enter» для запуска, и через несколько мгновений на экране появится результат. Это основные данные сайта с разрешенными опциями («OPTIONS»). Здесь видно, что используется команда GET, например: «Разрешить: GET».

Используя следующую команду, вы получите все данные из базы данных — идентично по содержанию подходу ниже.

curl -X GET http://yourdomain.com/wp-json/

Использование WordPress REST API с доступом через браузер

Доступ к содержимому базы данных WordPress также можно получить через HTTP-запрос браузера. Здесь используется JSON:

https://yourdomain.com/wp-json/
Факт

JSON расшифровывается как «JavaScript Object Notation», это текстовый формат для обмена данными. Его легко изучать и читать, он универсален. Узнайте больше в нашем учебнике по нотации JSON LD и в статье о междоменном запросе данных с помощью JSONP.

Доступная информация представлена как открытая книга. Для более глубокого изучения содержимого сайта WordPress REST API с его обширным набором команд позволяет выполнять детальные запросы к определенным компонентам из базы данных — например, запросить посты следующим образом:

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

Это дает вам обзор всех постов в базе данных, включая все существующие версии, ссылки, медиаконтент, авторов и многое другое. Отдельный пост четко обозначен в базе данных WordPress своим ID:

Если вы хотите отобразить отдельный пост в браузере, вставьте его ID следующим образом:

https://yourdomain.com/wp-json/wp/v2/posts/6576

Эту процедуру можно выполнять со всеми типами контента: постами, страницами, медиа, авторами и другими. Руководство по REST API, содержащее полный справочник команд, можно найти на страницах разработчиков WordPress.org.

WordPress REST API: практический пример

Зачем нам нужен API WordPress? Позвольте нам продемонстрировать это на простом практическом примере. Новый веб-сайт предназначен для сбора новостей от других интернет-провайдеров. Это будет работать с WordPress REST API только в том случае, если сайты, предоставляющие новости, также запрограммированы на WordPress. Здесь содержимое запрашивается с указанием их идентификаторов на выбранных серверах.

Для того чтобы постоянно иметь доступ к самому актуальному содержимому, можно использовать различные варианты программирования — например, скриптовые языки PHP или библиотеку JavaScript jQuery. Мы можем показать это на двух простых примерах кода для WordPress API.

Считывание сообщения с помощью PHP

Чтобы считать пост с другого сайта WordPress, на HTML-странице между <body> и </body> встраивается секция кода. Эта страница должна иметь возможность обработки PHP. В данном случае с именем файла «test-wp-rest-api.php». Названия полей для отображения можно взять из JSON-запроса, показанного выше (guide, title, link, content и т.д.). Раздел кода состоит из PHP-скрипта, который извлекает информацию, и HTML-элемента, который возвращает считанные данные через PHP:

<?php
$url = ‘https://www.mywebsite.com/wp-json/wp/v2/posts/6576'; // The JSON query path with ID
$data = file_get_contents($url); // Transfer the content into a variable
$mydata = json_decode($data, true); // Decode JSON
?>
<h1>PHP: Read out a post via WordPress REST-API</h1> // Heading
<div id="mydata">
<?php echo $mydata['content']['rendered']; ?> // Output of 'content' with the ID 6576
</div>

Считывание поста с помощью jQuery

Альтернативой для считывания содержимого является jQuery. В этом случае библиотеку необходимо интегрировать в заголовок страницы. Тогда все будет работать и с файлом с окончанием .html.

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> // Integrate
jQuery
<script>// The section for reading out the post data
$(function() {
$.getJSON('https://mtmedia.de/wp-json/wp/v2/posts/6576', function(alldata) {
var contentElm = alldata.content.rendered
$(contentElm).appendTo("#mydata");
});
});
</script>
</head>
<body>
<h1>jQuery: Read out a post via WordPress REST-API</h1> // Heading
<div id="mydata"> Output of 'content' of the post with the ID 6576
</div>
</body>

Результат идентичен браузерному представлению, полученному с помощью вывода PHP. При использовании jQuery содержимое возвращается в DIV-контейнере «mydata» без дополнительной переменной.

А как насчет сайтов с другими системами управления контентом?

API называется WordPress REST API, поскольку он является неотъемлемым компонентом программирования WordPress. По этой причине интерфейс доступен только в том случае, если запрашиваемые веб-страницы также настроены на WordPress.

При попытке запроса будет выдано сообщение об ошибке 404. Для таких сайтов существуют другие способы связаться с базой данных CMS.

Блокирование доступа к WordPress REST API

Не все согласны с тем, что другие могут просто считывать информацию с их сайта и даже использовать ее повторно. Чтобы предотвратить это, существует барьер, который можно активировать в бэкенде WordPress.

Плагин «Disable WP REST API» из репозитория WordPress должен быть активирован после установки — как и любой другой плагин — для того, чтобы остановить несанкционированный доступ. Кроме этого, больше никаких действий предпринимать не нужно.

Код состояния «401» (неавторизованный) означает, что сервер отклонил HTTP-запрос либо из-за недействительной, либо из-за отсутствия аутентификации. Однако, в отличие от «403», аутентификация возможна.

Многие веб-сайты защищены таким образом для предотвращения автоматизированной кражи контента. Спрашивать у оператора сайта разрешение на использование внешнего контента — это не только хорошие манеры, но и необходимость соблюдать авторские права. Чтобы протестировать собственный сайт, можно просто установить плагин в положение «отключено». После этого содержимое базы данных снова станет доступным. Данные в плагине не могут быть потеряны.

Оцените статью
cdelat.ru
Добавить комментарий