Введение в REST API WordPress

by Jason Cosper
Введение в REST API WordPress thumbnail

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

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

Введение в REST API

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

Прежде всего, вам нужно знать, что такое Application Programming Interfaces (APIs). В самых простых терминах, API это средство, с помощью которого одна система позволяет другим системам подключаться к своим данным.

Например, когда веб-сайт добавляет на страницу кнопку «Нравится» Facebook, он делает это, подключаясь к API Facebook. Это позволяет веб-странице использовать API для получения данных (кода для кнопки «Нравится») и отправки данных (запроса на «Нравится»).

Итак, что такое REST API конкретно? Representational State Transfer (REST) — это тип API, специфичный для веб-сервисов. Он содержит стандартизированный набор инструкций и правил, что облегчает взаимодействие всех «RESTful» сервисов друг с другом.

Короче говоря, REST API позволяет вам отправлять запросы во внешнюю систему. Одним из примеров является Twitter. Вы можете использовать его API для запроса определенного количества твитов от конкретного пользователя. API затем вернет твиты в соответствии с вашим запросом, которые вы можете встроить на свой сайт с использованием HTML и CSS.

Эти запросы выполняются с использованием JavaScript Object Notation (JSON). Это язык, специально разработанный для отправки, получения и хранения данных.

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

Что такое WordPress REST API (и почему это важно)

WordPress Rest API

WordPress REST API функционирует в основном так же, как и примеры, которые мы уже рассмотрели. По сути, WordPress REST API предоставляет вам полный доступ к функциям WordPress из любой совместимой с JSON структуры.

Так же, как API Twitter позволяет вам получать и отправлять твиты, REST API WordPress можно использовать для управления записями, пользователями, категориями и многим другим с внешних платформ. Это позволяет использовать WordPress множеством ранее невиданных способов.

REST API был анонсирован ещё в 2013 году. Изначально он был представлен в виде плагина, который должен был быть включён в основу WordPress к версии 4.1. Как это часто бывает, задержки отодвинули выпуск, пока он наконец не был реализован в основе с выпуском WordPress 4.7 три года спустя.

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

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

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

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

Теперь давайте посмотрим, как JSON и REST API работают вместе, чтобы это стало возможным.

Как REST API и JSON работают вместе

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

«API REST WordPress предоставляет точки доступа API для типов данных WordPress, которые позволяют разработчикам взаимодействовать с сайтами удаленно, отправляя и получая объекты JSON (JavaScript Object Notation).»

Первое слово, на которое нам нужно обратить внимание здесь, — это «endpoints». Проще всего думать об endpoint как о куске данных или функции, которую можно вызвать с использованием JSON-запроса. По умолчанию, WordPress предоставляет огромное количество стандартных endpoints, но разработчики также могут создавать пользовательские endpoints.

Чтобы достичь конечной точки, вы должны использовать ‘маршрут,’ который представляет собой обычный URL. Вы даже можете попробовать это прямо сейчас.

Перейдите на свой сайт WordPress и добавьте /wp-json/wp/v2 в конец его URL. Если ваш сайт http://example.com, вы должны ввести http://example.com/wp-json/wp/v2.

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

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

  • GET. Этот тип запроса используется для получения и перечисления данных из API. Например, вы бы использовали запрос GET для возврата списка пользователей на вашем сайте или компиляции блог-постов за определенный временной промежуток.
  • POST. Этот запрос используется для отправки данных в API. Он позволяет вам передавать новую информацию в WordPress, такую как добавление новых пользователей и постов или обновление существующих данных.
  • DELETE. Как следует из названия, этот запрос используется для удаления данных. Это позволяет вам удалять посты, страницы, пользователей и многое другое.

GET и POST иногда могут использоваться с одним и тем же конечным точками для достижения различных результатов.

Например, давайте рассмотрим точку доступа /me/settings/. Если вы выполните GET запрос к этой точке доступа, вы получите список текущих настроек пользователя. Однако, используя POST запрос к той же точке доступа, вы сможете обновить настройки.

Получайте контент прямо в свой почтовый ящик

Подпишитесь сейчас, чтобы получать все последние обновления прямо в свой почтовый ящик.

Начало работы с WordPress REST API

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

Для получения дополнительных примеров мы рекомендуем ознакомиться с официальной справочной библиотекой и ресурсами REST API.

Следующие методы потребуют от вас использования командной строки для обработки запросов JSON. Это позволит вам взаимодействовать с вашим сайтом WordPress, используя текстовый интерфейс и отправляя простые команды.

Если у вас нет опыта использования командной строки, мы рекомендуем уделить время для изучения базовых знаний. Вам также может понадобиться использовать SSH для создания соединения с вашим сайтом.

Наконец, когда вы будете готовы, давайте рассмотрим несколько примеров использования WordPress REST API!

1. Возврат публикаций с сайта

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

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

curl https://wordpress.org/news/wp-json/wp/v2/posts/1

ID был установлен на 1, что означает, что этот запрос извлечет самую первую публикацию в блоге. Может быть сложно увидеть, так как JSON не очень удобочитаем, но среди кода можно обнаружить весь контент и мета-данные для публикации:

получение поста из блога WordPress с использованием WordPress Rest API

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

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

curl https://wordpress.org/news/wp-json/wp/v2/posts/?per_page=3

Вы можете попробовать это самостоятельно с другими сайтами, и даже со своим собственным блогом.

2. Обновить запись

Теперь давайте попробуем внести некоторые изменения в WordPress с помощью REST API. Для этого вам нужно будет войти на сайт, который вы хотите управлять. Например, если вы используете SSH, вам нужно будет войти на ваш сервер.

В этом примере мы обновим существующий пост. Сначала давайте используем запрос для обновления заголовка поста с ID 1:

curl -X POST http://example.com/wp-json/wp/v2/posts/1 -d '{"title":"Совершенно новый заголовок"}'

Это довольно очевидно. Аргумент title показывает, что вы обновляете заголовок поста, за которым следует строка текста с заменой.

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

3. Удалить пользователя

Наконец, давайте посмотрим, как вы можете удалить данные с помощью REST API. В этом примере мы удалим пользователя с сайта. Естественно, перед использованием этой функции вы должны быть в системе и иметь права на управление пользователями.

Затем вы можете использовать следующий запрос для удаления пользователя с ID 101:

curl -X DELETE http://example.com/wp-json/wp/v2/users/101

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

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

Изучите разработку WordPress

WordPress REST API стал огромным шагом вперёд для платформы, который уводит её от истоков в будущее. Разработчики были в восторге с первого дня, но если вы изначально не были знакомы с REST API, вы могли запутаться, почему.

Хотя REST API может показаться сложным для новичков, вам не обязательно быть опытным разработчиком, чтобы использовать некоторые базовые запросы. Например, API позволяет выполнять разнообразные задачи на вашем собственном сайте (или на других), такие как возвращение публикаций, обновление публикаций и удаление пользователей.

Ищете высокопроизводительный хостинг для вашего сайта на WordPress? В Dreamhost наши управляемые планы DreamPress предлагают профессиональные среды для стейджинга, автоматические резервные копии, встроенный Кэш и многое другое. Ознакомьтесь с нашими предложениями уже сегодня!

Фоновое изображение объявления

Делайте больше с DreamPress

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

Ознакомьтесь с планами