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

Wordpress Rest api

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

Если еще не работали с РЕСТ АПИ, вам может быть интересно, что это такое. Поэтому в этой статье я подробно расскажу о нем.

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

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

REST расшифровывается как Representational State Transfer, а API — как Application Programming Interface.

Давайте рассмотрим, что означает каждое из этих понятий.

Что такое интерфейс прикладного программирования (API)?

Интерфейс прикладного программирования, или API, определяется как:

«Интерфейс или протокол связи между клиентом и сервером, предназначенный для упрощения создания программного обеспечения на стороне клиента».

Если говорить проще, то АПИ — это набор кода, который позволяет одной системе взаимодействовать с другой. Если вы когда-либо добавляли карту Гугл на свой сайт WordPress, то использовали API Maps, который помогает веб-ресурсу функционировать с Google Maps.

Эти системы не обязательно должны быть полностью раздельными. WordPress уже имеет множество API для таких вещей, как плагины, параметры и шорткоды. Разработчики расширений и тем могут использовать их для взаимодействия с ядром ВордПресс (например, для создания коротких кодов и добавления экранов настроек в админку).

Разница с REST API заключается в том, что он позволяет системам за пределами вашей установки WP взаимодействовать с WordPress, и именно в этом суть РЕСТ.

Что такое передача репрезентативного состояния (REST)?

Передача репрезентативного состояния, или REST, обеспечивает стандарты, которые веб-системы используют для взаимного функционирования. Без РЕСТ они не смогли бы понять друг друга и пересылать данные туда и обратно.

Чтобы приложение было RESTful, оно должно соответствовать 5 принципам:

Единый интерфейс. URL-адреса, используемые для подключения к ресурсам системы, должны быть единообразными, согласованными и доступными через общий подход, такой как GET (о нем я расскажу чуть позже).

Клиент-сервер. Клиентские и серверные приложения должны быть разделены, чтобы их можно было разрабатывать независимо друг от друга. Если технология на стороне хранилища (например, WordPress) изменится, то его программа обязана иметь возможность получить к ней доступ с помощью того же простого метода.

Сервер не меняет состояние при новом запросе через API. Он не хранит данные о выполненных обращениях.

Кэшируемость. Все ресурсы должны быть буферизируемыми, чтобы повысить скорость и соответствие веб-стандартам. Кэширование реализуется на стороне сервера или клиента.

Многоуровневая система. RESTful позволяет использовать несколько уровней для доступа к ней, сохраняя данные на промежуточных серверах, если это необходимо. Хостинг не может определить, подключен ли к нему конечный клиент напрямую.

Все эти ограничения относятся к веб-страницам и приложениям и определяют способ взаимодействия приложения с API.

Что это значит для WordPress?

Сочетание WordPress REST API — это набор кода, разработанный, чтобы сделать возможным взаимодействие других систем с WP. Он построен таким образом, чтобы они понимали друг друга.

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

Понимание WordPress REST API

REST API разработан в ответ на изменения в способах создания веб-сайтов и приложений и необходимость более широкого раскрытия WordPress.

История создания WordPress REST API

REST API был выпущен в качестве части ядра в версии 4.7 в декабре 2016 года, но до этого он существовал в виде плагина.

REST API предназначен для поддержки ряда приложений, построенных на WP. И превращения ВордПресс из системы управления контентом в платформу для них.

Он широко используется сайтом WordPress.com, чей интерфейс на основе JavaScript применяет REST API для взаимодействия с базой данных WP. Он также эксплуатируется в панели редактирования Gutenberg, который стал частью ядра в 2019 году.

REST API расширяет спектр программ, для которых можно использовать WordPress. В то время как система управления контентом отлично справляется с контролем над сложным сайтом, платформу приложений можно применять для создания одностраничных веб-приложений или SPA (если вы когда-нибудь работали в Google Docs, то пользовались одним из них).

В них содержимое обновляется, когда человек совершает действие, вместо загрузки новых страниц. Поскольку в них применяется JavaScript (язык, используемый на стороне клиента), а не PHP, они могут выполнять операции в браузере пользователя без необходимости постоянно отправлять запросы на сервер.

Последствия для пользователей и разработчиков WordPress

Если вы являетесь пользователем и/или разработчиком, работающим с WordPress, то REST API имеет ряд последствий.

Для посетителя они включают в себя:

  • Изменения в интерфейсе, включая редактор Gutenberg.
  • Со временем экраны администратора ВордПресс на хостинге станут более похожими на WordPress.com.
  • Изменения и улучшения в мобильном приложении WP.

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

  • Можно создавать SPA, используя REST API, получать данные из WordPress, отличаясь от WP.
  • Возможность интегрировать ВордПресс с другими фронтенд-технологиями и системами.
  • Для PHP-разработчиков возрастает необходимость расширять свои навыки за счет JavaScript.
  • Возможность создавать на WordPress, если вы фронтенд-девелопер, не пишущий код на PHP.
  • Специфические изменения, такие как необходимость разработки блоков Gutenberg вместо метабоксов на экранах редактирования страниц и постов.

С появлением REST API все большая часть ядра WordPress будет написана на JavaScript, а не на PHP. Если являетесь разработчиком ВордПресс, это означает, что вам придется изучить JS.

Как получить доступ к WordPress REST API

Чтобы получить доступ к WP-REST API, нужно зайти на свой сайт через командную строку. В WordPress это называется WP-CLI. Вы не делаете ничего подобного через экраны администратора или путем прямого доступа к коду на веб-ресурсе.

Давайте рассмотрим, как начать.

Доступ к WP-REST через WP-CLI

WP-CLI — это интерфейс командной строки WordPress. Он позволяет получать доступ и работать с ВордПресс через нее на вашем компьютере.

Чтобы увидеть CLI, откройте Terminal на Mac или в Linux, или Command Prompt в Windows.

Получение доступа к РЕСТ АПИ

Для получения доступа к удаленному сайту через WP-CLI, нужно подключиться по SSH к вашему серверу.

Для доступа к локальному веб-проекту достаточно использовать правильную структуру каталогов из командной строки. Прежде чем использовать REST API на таком тестовом сайте, стоит поэкспериментировать с ним на реальном ресурсе.

Вам нужно будет специально получить доступ к REST API для своего веб-ресурса, например, так:

http://yoursite.com/wp-json/wp/v2

После этого можете добавить элементы для доступа к определенным типам данных, их мы рассмотрим подробно далее. Они называются конечными точками.

Аутентификация

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

Здесь вы не будете входить в админку сайта: REST API работает немного по-другому.

Чтобы иметь возможность аутентифицировать свой ресурс через WP-CLI, нужно установить специальный плагин. Для разработчиков подойдет Basic Auth, который легко использовать.

Однако для реальных сайтов следует выбирать надежную форму аутентификации, например, плагин JWT Authentication. Он использует JSON Web Token и является более безопасным.

Затем можете применить командную строку для доступа к данным и включения аутентификации.

В примере ниже используется curl для проверки соединения с WordPress. Будет выведен список черновиков постов.

curl -X GET --user username:password -i http://yoursite.com/wp-json/wp/v2/posts?status=draft

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

curl -X GET http://yoursite.com/wp-json/wp/v2/posts.

Это позволит увидеть все публикации, поскольку они являются общедоступными.

Обзор команд WordPress REST API

После того, как вы получили доступ к своему сайту и знаете, как использовать аутентификацию (и понимаете, стоит ли это делать), нужно будет использовать одну из нескольких команд для взаимодействия с веб-ресурсом.

Здесь понадобятся следующие варианты:

  • GET — получение ресурса, например, поста или других данных.
  • POST добавляет материал на сервер, например, публикацию, вложение и т.д.
  • PUT можно использовать для редактирования или обновления ресурса, который уже находится на хостинге.
  • DELETE удаляет материал с сервера. Используйте их с осторожностью.

Далее рассмотрим каждую из них подробнее.

GET

Команда GET, пожалуй, самая часто применяемая: она позволяет получить данные. Приведенный ниже пример помогает увидеть список всех опубликованных страниц веб-проекта:

GET http://yoursite.com/wp-json/wp/v2/posts/?status=published

Обратите внимание, что я не указал полный путь к сайту в строке выше, поскольку вы уже имеете доступ к нему благодаря WP-CLI.

Получив эти данные, используйте их, чтобы определить свой следующий шаг. Можете удалить один из этих постов, отредактировать его или обновить. Также есть возможность просто вывести публикации в свое веб-приложение.

Чтобы получить последний пост, вам нужно использовать следующее:

GET http://yoursite.com/wp-json/wp/v2/posts/?per_page=1

Существует несколько аргументов, которые можно применить при работе с публикациями.

POST

Используйте эту команду для добавления новых данных или ресурсов на сайт.

Например, если хотите сделать публикацию, то начинайте с POST:

POST http://yoursite.com/wp-json/wp/v2/posts/.

Это создаст новый пустой черновик поста.

Затем вы можете обновить публикацию, используя команду PUT для редактирования.

С помощью POST вставляйте и другие материалы, включая вложения и разные типы постов.

Чтобы добавить страницу на свой сайт, можете использовать что-то вроде этого:

POST http://yoursite.com/wp-json/wp/v2/posts/pages

Это создаст пустую веб-страницу.

PUT

Команда PUT позволяет редактировать существующий ресурс, включая посты.

Допустим, на сайте есть несколько черновиков. Вы хотите проверить их и обновить один из них, чтобы опубликовать его.

Можете начать с получения списка:

POST http://yoursite.com/wp-json/wp/v2/posts/?status= "draft"

Система выдаст перечень всех текущих черновиков. Можете изменить статус одного из них, используя его ID:

PUT http://yoursite.com/wp-json/wp/v2/posts/567

Это позволит вам получить доступ к этому посту и отредактировать его. Затем измените его статус, используя аргумент status:

{
"status" = "publish"
}

Или добавьте содержимое в пост и опубликуйте его:

{
"status" = "publish"
"content" = "content here"
}

Сервер вернет статус 200 — OK, сообщив, что запрос PUT успешно отредактировал пост.

DELETE

Команда DELETE удаляет ресурс. По умолчанию, если вы примените ее, чтобы стереть публикацию, она поместит ее в корзину, а не «ликвидирует» навсегда.

Поэтому, если хотите переместить туда только что созданный пост, используйте следующее:

DELETE http://yoursite.com/wp-json/wp/v2/posts/567.

Но если нужно обойти корзину и стереть его навсегда, применяйте аргумент force:

DELETE http://yoursite.com/wp-json/wp/v2/posts/567?force=true

Это приведет к окончательному удалению без возможности отмены, поэтому использовать его следует с осторожностью.

Когда не стоит использовать WordPress REST API

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

Совместимость

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

Сайт WordPress, созданный на PHP, будет выводить HTML, поэтому такая проблема ему не грозит. Устройства, не использующие JavaScript, встречаются все реже, но если вы разрабатываете специально для них, REST API не подойдет.

Аналогично, если пользователи отключат JS, работа с РЕСТ АПИ вызовет проблемы. Некоторые выключают его в своих браузерах из соображений доступности или безопасности.

Доступность

Сайты и приложения, разработанные с использованием JavaScript, не всегда так же доступны, как те, что создаются на HTML.

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

Использование REST API для подключения к сайту WordPress и вывода данных позволяет преодолеть эти трудности, но стоит проверить свой ресурс на доступность во время его разработки.

SEO

Одностраничные приложения, которые часто обновляются, иногда вызывают проблемы с SEO. Это связано с тем, что контент, который не предоставляется при первом выводе страницы, может быть не проиндексирован поисковыми системами.

Google и другие ПС уже поняли, что многие сайты теперь работают на основе SPA, и индексируют их соответствующим образом. Однако стоит провести тщательный SEO-аудит любого ресурса, который вы разрабатываете с использованием REST API.

Как отключить WordPress REST API

Если не хотите, чтобы приложения получали доступ к данным с сайта с помощью REST API, то отключите его. Помните, публичные материалы могут быть доступны кому угодно, а не только вам.

Для этого установите плагин Disable WP REST API. Он отключит РЕСТ АПИ для всех, кто не вошел на сайт.

Расширение для отключения РЕСТ АПИ

Кроме того, можете добавить код в файл опций темы или разработать собственный плагин. Лучше выбрать второй вариант, так как это не специфическая для темплейта функциональность.

В своем плагине добавьте всего две строки:

add_filter( 'json_enabled', '__return_false' );
add_filter( 'json_jsonp_enabled', '__return_false' );

Это полностью отключит REST API для сайта. Такое действие может иметь последствия для экранов администратора, поэтому убедитесь, что после добавления этого фильтра все работает нормально.

Реальные приложения с использованием WordPress REST API

REST API открывает удивительные возможности для будущего WordPress. Вот несколько примеров приложений и сайтов, использующих его для создания SPA или для связи WP с другими веб-проектами и технологиями.

WordPress.com

Сайт ВордПресс с РЕСТ АПИ

Экраны администратора WordPress.com полностью построены с использованием REST API, чтобы обеспечить SPA, с которым пользователи взаимодействуют для управления своим сайтом.

Это обеспечивает динамическую связь между интерфейсом и сервером и приводит к созданию удобного взаимодействия, которое WordPress.org, вероятно, со временем будет имитировать.

Блочный редактор (Gutenberg)

Удобный и продвинутый Гутенберг

Gutenberg находится в админке WordPress и на хостинге, он использует REST API для связи с вашей базой данных и создания блоков.

Чтобы типы постов работали с ним, у них должен быть включен РЕСТ АПИ. Это означает, что если вы регистрируете кастомный вид публикации и используете Gutenberg, то нужно добавить следующую строку, чтобы включить редактор блоков для него:

"show_in_rest" = true;

Event Espresso

Расширение для пользователей

Event Espresso — это плагин ВордПресс, который разрешает пользователям организовывать и публиковать события. Он использует REST API, чтобы они получали доступ к данным из WP. Это означает, что вы можете создавать мобильные приложения или SPA для управления событиями.

UsTwo

Веб-приложение в виде страницы

UsTwo — это цифровое агентство, чей сайт был разработан с использованием REST API как одностраничное приложение. Он сочетает в себе фронтенд, созданный на React, и бэкенд, работающий на WordPress.

Контент их единственной страницы — модульный. Стоит отметить, что он имеет структуру, которая отличается от стандартного сайта ВордПресс. Для этого они используют плагин для построения страницы, он позволяет команде добавлять модульный контент.

USA Today

Новостной сайт с РЕСТ АПИ

Сайт USA Today был перестроен с помощью интеграции WordPress REST API с существующими системами и модулями веб-ресурса.

РЕСТ АПИ позволил отправлять контент проекта в другие сервисы, такие как Facebook* Instant Articles и Apple News, используя JSON. Они также написали социальную онлайн-игру для спортивного раздела, построенную на JavaScript.

Заключение

WordPress REST API несет в себе не только ряд проблем. Также он предоставляет интересные возможности, как для пользователей, так и для девелоперов. Это будущее ВордПресс, которое способно изменить принцип его использования и создания разработок под него.

*Facebook признан экстремистской организацией и запрещен на территории РФ.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Александр/ автор статьи

Специалист по WordPress с фокусом на создании качественных и уникальных сайтов. Мой опыт включает разработку шаблонов с нуля, интеграцию и тестирование плагинов, а также поддержание безопасности и SEO-оптимизацию проектов.

Загрузка ...
Шаблоны для WordPress
×
Прокачай свой сайт WordPress!

-20% на премиум темы и плагины

Создай сайт своей мечты ⋙