Руководство по API WordPress REST

  1. Внедрение REST API в WordPress
  2. Разбиение аббревиатур: от HTTP к JSON REST API
  3. Представительный государственный трансферт (REST)
  4. JSON - Что случилось с XML?
  5. Как мы находим данные: следуйте по маршруту до конечной точки
  6. Этап 1: получение последних сообщений
  7. Этап 2: фильтрация результатов
  8. Заключительный этап: поисковые запросы
  9. Будущий потенциал REST API

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

Что такое секретный соус WordPress? Легко - это самый простой, но самый расширяемый способ управления вашим контентом. Однако какое-то время WordPress, похоже, отстал.

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

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

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

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

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

Если вы думаете, что API REST WP появился из ниоткуда, вы ошибаетесь.

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

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

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

WordPress 4.4 Кодовое название «Clifford» перенесло начальную инфраструктуру проекта в ядро ​​WordPress, а конечные точки не появлялись до WordPress 4.7 «Вон».

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

Теперь, когда начальные конечные точки содержимого были объединены со всеми текущими версиями WordPress, разработчики плагинов и авторы тем могут экспериментировать с захватывающими новыми способами извлечения, просмотра и изменения данных вне традиционного опыта wp-admin.

Разбиение аббревиатур: от HTTP к JSON REST API

Чтобы понять значение API WP REST, он может помочь понять основы того, как мы обмениваемся данными в Интернете и куда движется Интернет.

HTTP является основой для большинства веб-трафика, с которым мы имеем дело ежедневно. Если вы вводите URL в браузер, вы делаете запрос . Соответствующий сервер получает ваш запрос и предоставляет ответ . Эта транзакция является основой почти всего, что мы делаем в Интернете. Браузеры делают запросы, а серверы предоставляют ответы.

Тип запроса, который мы делаем, может влиять на тип получаемого нами ответа. Большую часть времени мы делаем простой запрос GET : «Привет, Google, дай мне свою целевую страницу». Google дает ответ.

Когда Интернет стал более интерактивным, мы начали использовать другие HTTP-запросы, включая PUT , POST и DELETE .

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

Этот протокол является основой, на которой мы строим наши сайты на WordPress.

Мы используем формы и PHP для получения и размещения данных в нашей базе данных. Вопреки популярный мнение этот фундамент WordPress не изменится в ближайшее время. Все, что сейчас делает WordPress, - это предоставление разработчикам нового способа взаимодействия со своими данными WordPress через RESTful API.

Представительный государственный трансферт (REST)

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

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

Существование WP REST API, особенно после WordPress 4.7, означает, что весь контент вашего сайта, включая публикации, страницы, комментарии и любые общедоступные мета-записи, теперь напрямую доступен в виде необработанных данных. Это также означает, что вы можете вносить изменения в эти данные вне пределов традиционного wp-admin, если хотите, например, через мобильное или настольное приложение.

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

JSON - Что случилось с XML?

Ветеринары WordPress имеют большой опыт работы с XML, распространенным форматом для обмена контентом между сайтами.

Подобно XML, JSON - это просто механизм, который позволяет нам легко переносить данные, связывая их в определенный синтаксис. На самом деле JSON - это строка, текстовое представление объекта JavaScript, хранящего ваши данные в виде набора пар ключ-значение. Распространенное представление JSON поста WordPress может выглядеть так:

{«Id»: 1, «title»: {«rendered»: «Hello World»}, «content»: {«rendered»: «Добро пожаловать в WordPress. Это ваше первое сообщение. Отредактируйте или удалите его, затем начните вести блог! »}}

(Вы можете использовать Инструмент форматирования JSON при необходимости выровнять ответ JSON.)

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

Не случайно JSON лучше всего сочетать с JavaScript. Чем больше разработчиков WordPress начинают « Изучать JavaScript », Мы увидим все более и более продвинутые варианты использования WordPress в качестве бэкэнда.

Как мы находим данные: следуйте по маршруту до конечной точки

Доступ ко всем данным вашего сайта через REST API так же прост, как составление URL.

Для любого сайта WordPress, работающего по крайней мере с версией 4.7, добавьте следующую строку в конец URL вашего сайта: / wp-json / wp / v2 (например, http://example.com/wp-json/wp/v2). Поместите этот URL в ваш браузер и посмотрите, что получится.

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

Загружая этот контент, вы только что определили маршрут и попросили свой браузер ПОЛУЧИТЬ его для вас.

Маршрут - это URL, который привязан к определенному методу. Ядро WordPress читает этот маршрут, с каждой косой чертой «/», представляющей определенный путь или параметр, который должен следовать.

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

Примером конечной точки может быть «/ wp-json / wp / v2 / posts / 1», где мы добавили пути «/ posts» и «/ 1». Эта конкретная конечная точка сообщает нашему сайту, чтобы мы просматривали наши данные, поднимали наши сообщения и поднимали сообщение с идентификатором 1.

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

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

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

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

Если вы перейдете к «инструментам разработчика» вашего браузера, вы можете проверить заголовки HTTP на предмет любых ресурсов, загружаемых в окно браузера, включая файлы HTML, таблицы стилей CSS, изображения и многое другое.

Первый заголовок, который нужно рассмотреть, - это метод запроса , который напрямую соответствует тем HTTP-запросам, которые мы узнали ранее. Здесь вы, скорее всего, увидите GET как метод запроса, если мы просто просматриваем страницу.

Приложение, вызывающее ваш REST API, может изменить метод запроса заголовка на POST.

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

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

ПРИМЕЧАНИЕ . Методы аутентификации вызовов вашего REST API еще не завершены, что делает аутентификация самый большой барьер для входа для разработчиков, желающих работать с REST API для добавления или изменения данных.

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

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

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

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

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

Этап 1: получение последних сообщений

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

Когда мы определим данные, нам понадобится место для хранения названия сайта (которое не включено в ответ по умолчанию), URL и постов, как только мы их получим. Вот пример:

{«Name»: «wordpress.org», «url»: «https://wordpress.org/news/wp-json/wp/v2/posts?per_page=3», «posts»: []}

Вы заметите, что мы также включили наш первый параметр в конец URL per_page. Как правило, API-интерфейс WP REST разбивает результаты на страницы по тем же правилам, что и обычный цикл WP_Query. Мы ограничим наши запросы первыми тремя постами.

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

loadPosts: function () {var self = this; self.sources.forEach (function (source, index) {self. $ delete (source, 'posts'); // Получить API с vue-ресурсом self. $ http.get (source.url) .then (function (response) ) {self. $ set (source, 'posts', response.data);}, function (response) {console.log ('Error');});}); }

Мы также включим начальный вызов loadPosts (), когда наш экземпляр Vue будет успешно смонтирован.

mount: function () {this. $ nextTick (function () {// Загрузка сообщений на начальной странице load this.loadPosts ();}); }

Сохранение loadPosts () в качестве отдельного метода пригодится в будущем, когда мы начнем делать несколько вызовов API. В нашем HTML мы будем использовать простую Vue отображение списка директивы и синтаксис шаблона выводить все наши посты.

Смотрите встроенную ручку для рабочего демо:

Увидеть перо Пример поиска WP REST API (первый этап) Брайан Кордс ( @bacoords ) на CodePen ,

Этап 2: фильтрация результатов

Давайте добавим боковую панель и создадим несколько фильтров, чтобы показать / скрыть различные источники. Чтобы сделать это, мы добавляем новое свойство к объекту sources, логическое имя которого мы назовем.

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

Мы будем использовать стороннюю библиотеку Moment.js преобразовать дату в более читаемый формат.

filters: {// Использование Moment.js для преобразования даты публикации в читаемый формат prettyDate: function (value) {// Возврат, если дата пуста, если (! value) return ''; // Преобразование даты в Moment.js var date = moment.utc (value); // Возврат отформатированной даты return date.format ("МММ ДД, ГГГГ,"); }},

Смотрите встроенную ручку для рабочего демо:

Увидеть перо Пример поиска WP REST API (первый этап) Брайан Кордс ( @bacoords ) на CodePen ,

Заключительный этап: поисковые запросы

Здесь мы добавим новый параметр в наш запрос API. Мы уже добавили параметр per_page = 3, чтобы ограничить количество результатов, которые мы получаем с каждого сайта. Если что-то написано в строке поиска, мы добавим это в качестве дополнительного параметра.

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

Мы добавим строку поиска и свяжем ее с переменной, используя директиву V-модели Vue.

Вместо того, чтобы сразу вызывать все API, когда пользователь начнет печатать, мы добавим кнопку и свяжем событие с отправкой формы. Затем мы добавим метод к нашему экземпляру Vue, который добавляет параметры поиска (конечно, закодированный URL) к URL.

generateUrl: function (source) {var self = this; // Добавить параметры поиска. if (self.searchQuery) {return source.url + '& search =' + encodeURI (self.searchQuery); } else {return source.url; }}

Смотрите встроенную ручку для рабочего демо:

Увидеть перо Пример поиска WP REST API (первый этап) Брайан Кордс ( @bacoords ) на CodePen ,

Хотя это простой пример WP REST API, мы могли бы представить потенциальное приложение для чего-то подобного в самом WordPress. Например, уже есть метабокс «WordPress News».

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

Будущий потенциал REST API

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

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

По мере того как WP REST API становится все более укоренившимся в структуре WordPress, мы начнем видеть его эффекты, возможно, даже не осознавая этого. Примеры варьировались от простого (Крис Койер Цитаты по дизайну ), для сложных, одностраничных приложений ( Сайт Гуггенхайма ).

Еще один популярный пример использования API-интерфейса WP REST - разработка мобильных приложений.

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

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

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

В будущих обновлениях WordPress мы начнем видеть admin-ajax заменены в пользу API, мы надеемся увеличить скорость выполнения основных функций, таких как редактирование меню или публикация сообщений.

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

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

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

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

Что такое секретный соус WordPress?
JSON - Что случилось с XML?
Org/news/wp-json/wp/v2/posts?