Базовое руководство по WordPress REST API. Wordpress api


WordPress REST API — для чего и что это такое? | WPNICE

Сегодня мы поговорим о WordPress REST API (некоторые называют его JSON REST API), грядущем дополнении к ядру WordPress, которое сейчас доступно в виде плагина и изначально появилось в версии 4.1. Сейчас же нас ждет двухступенчатая интеграция в версиях 4.4 и 4.5. Если разработчики очень восторженно относятся к появлению этой новой функции, то среднестатистический пользователь WordPress может не понять всего этого восторга, хотя появление данной функции можно назвать знаковой вехой в истории WordPress. Давайте же узнаем, что такое WordPress REST API, и что его появление означает для будущего WordPress, а также, почему это пишется заглавными буквами.

Что такое API?

Давайте начнем с базовых вещей и терминологии, так как название JSON REST API полностью составлено из акронимов. Первые три буквы “API” – это Application Programming Interface (интерфейс программирования приложений).

Для чего нужен API?

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

USB-порты используются для связи различных типов девайсов с вашим компьютером. Это могут быть принтеры, элементы управления компьютером, портативные жесткие диски, телефоны и т.д. Через данный порт компьютер и девайс могут взаимодействовать друг с другом, обмениваясь информацией. API – это что-то похожее, только он связывает не девайсы, а программы. Таким образом, программы могут обмениваться данными в строго оговоренных рамках, взаимодействуя друг с другом. Вы постоянно используете API, даже не замечая этого. Например, если вы используете сторонние программы, чтоб  воспользоваться своим аккаунтом в Twitter, то это действие выполняется посредством Twitter API. Благодаря API-технологии, я могу находиться в Twitter каждый день, даже не заходя на Twitter-сайт.

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

Что значит REST и JSON?

REST — это сокращение от английского Representational State Transfer (передача состояния представления). REST  описывает определенную архитектуру API, разработанную таким образом, чтоб он был легковесным, дружественным к пользователю и подходящим для широкого спектра сервисов. Google, Facebook и  Twitter используют REST-стиль для многих своих API, по той простой причине, что REST создан на основе HTTP – протокола, который повсеместно используется в сети, вместе со своим более безопасным кузеном HTTPS. Благодаря своей высокой совместимости с современными технологиями, API, созданные  на базе REST, набирают все большую популярность в сети, и не только в случае WordPress. Практически любая программа, которая имеет доступ в интернет, может использовать этот тип API. Похоже, это несет большие возможности для взаимодействия программ, не так ли?

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

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

Под всем сказанным можно сделать следующие выводы:

JSON REST API и WORDPRESS

WordPress REST API 2

Ладно, мы поняли, что штука эта — полезная. Но разве WordPress уже не использует эти API в своей структуре? Ну да, один есть, и это — WordPress API. Используется он для WordPress-плагинов, и работает только с внутренними процессами WordPress. Но если мы говорим о взаимодействии с программным обеспечением извне, то этот API – устарел и не очень дружественен к пользователю. Новый WP API гораздо более универсален, так как создан для того, чтоб, WordPress мог с легкостью взаимодействовать с другими веб-сайтами и сервисами в интернете. С помощью универсального API можно отображать и сохранять контент с других сайтов и приложений, не зависимо от того, используется ли там движок WordPress или нет. Все верно, данный API позволяет платформе WordPress стать системой управления контентом, подходящей для любого приложения, написанного на любом языке.

Плюс, тоже самое работает и в обратном порядке. Все, что есть на вашем WordPress-сайте, будет также доступно и на любом внешнем веб-сайте и сервисе, включая:

Это работает, потому что в основе всего лежит HTTP, который доступен везде. Протокол позволяет сайтам посылать, создавать, читать, обновлять или удалять запросы между двумя сторонами. В HTTP команды POST, GET, PUT, и DELETE являются эквивалентами. Кроме того, API понимает URLы, структура которых похожа на директории, а как мы знаем, похожие ссылки как раз использует WordPress и другие системы управления контентом.

Суммируя сказанное, моно сказать, что если вы захотите перенести все записи определенного пользователя с вашего сайта на другой ресурс, то вы можете просто воспользоваться директивой —

GET http://yoursite.com/users/username.

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

Здорово, но безопасно ли это? Хорошая новость заключается в том, что  WordPress REST API имеет встроенные меры безопасности. Волшебное слово здесь – это аутентификация. У интерфейса есть и куки-аутентификация, и OAuth-аутентификация. Таким образом,  куки-аутентификация работает для плагинов и тем, а OAuth используется для аутентификации мобильных и веб-клиентов, а также клиентов настольных компьютеров. Оба метода лимитируют сторонние действия на вашем сайте. Так как API созданы для того, чтоб платформы могли лимитировано обмениваться строго определенной информацией, то ваши данные в полной безопасности.

Что значит WP API для WORDPRESS?

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

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

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

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

WordPress входит в новую эру

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

Но интереснее всего звучит возможность использования WordPress-продуктов, к примеру, плагинов, на других платформах, и системах управления контентом.

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

В итоге:

Nick SchäferhoffNick Schäferhoff

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

WP REST API — документация (англ).

Автор оригинала Nick Schäferhoff

 

wpnice.ru

Базовое руководство по WordPress REST API

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

wprest

WordPress REST API – самый волнующий проект для платформы с тех пор, как появились произвольные типы записей в WordPress 2.9 и 3.0. Я действительно так считаю.

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

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

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

Давайте сначала дадим определение акронимам. Это может показаться утомительным для опытных разработчиков, однако это – хороший способ настроиться на нужный лад.

API: Application Program Interface (интерфейс программирования приложений)

API – это достаточно широкий термин. Любая программа – API. Если у вас имеется некоторый вид конструкции в языке программирования (к примеру, в PHP), и конструкция позволяет выполнять задачи программирования, то в таком случае можно смело говорить об API.

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

Команда разработчиков создала программный интерфейс, чтобы сделать это возможным. Это – самое простое, дилетантское определение API.

JSON: JavaScript Object Notation

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

JSON делает возможным взаимодействие между WordPress и мобильными приложениями, поскольку JSON – общий для них формат данных, т.е. вы можете, к примеру, создавать данные на стороне WordPress и передавать их в JSON, чтобы их можно было считать уже на стороне мобильного приложения. Такие отношения можно выстроить не только между WordPress и мобильными приложениями; эти отношения могут быть самыми разными, что делает все более реалистичной фразу «Wordpress – платформа для мобильных приложений».

json-api-data-752x460

JSON выглядит ужасно, если вы взглянете на его «сырые данные». К примеру, сайт Post Status обладает включенным WordPress REST API, поэтому, если вы перейдете по адресу https://poststatus.com/wp-json/posts, вы увидите все последние записи в формате JSON. Для человеческого глаза это не слишком привлекательно, но вот для языка программирования это вполне красиво.

REST: Representational State Transfer

REST API – это архитектурное предпочтение. Большинство REST API, включая WP REST API, основаны на HTTP. Это означает, что основные действия REST API – это HTTP-действия: POST, GET, PUT, DELETE.

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

Wikipedia объясняет RESTful API гораздо лучше, чем я; вот основное определение:

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

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

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

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

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

Как можно использовать WordPress REST API?

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

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

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

Эти три сайта используют REST API во фронтэнде. Однако приложения могут выходить далеко за рамки этих примеров.

WordPress как приложение

Если вам интересен реальный пример, вы можете посмотреть презентацию K. Adam White с WordCamp San Francisco 2014, в которой он рассказывает о том, как его команда использовала WordPress в качестве CMS для приложения node.js. Презентация раскрывает тот потенциал применения API, о котором я говорил.

Изучить готовый репозиторий ExpressPress, который Адам отметил в своей презентации – значит получить полезный опыт.

Произвольные админки WordPress

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

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

json-api-wpcom-post-editor-752x561

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

wp-api-happy-tables-752x490

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

Интеграция с приложениями

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

Мобильное приложение может быть написано на любом языке, будь то Objective-C, Swift и т.д., и взаимодействовать с WordPress.

Пример такого подхода в действии – AppPresser. AppPresser — это фреймворк разработки приложений, который интегрируется с WordPress REST API для простого создания приложений WordPress.

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

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

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

Когда WordPress REST API появится в ядре?

REST API находится в процессе активной разработки.

REST API не был намечен на определенный релиз, хотя он официально поддерживает модель «возможностей как плагинов». Скорее всего, REST API войдет в ядро WordPress в 2015 году, где-то между WordPress 4.3 и WordPress 4.5. Думаю, что скорее в 4.5, поскольку перед добавлением надо будет провести его всестороннее тестирование.

Следите за разработкой

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

Знайте, что новая главная версия находится в процессе разработки, поэтому есть определенное несоответствие между 1.1.x и грядущей версией в плане информации, кода и документации. Новая версия – и значительно реструктуризированная – уже примерно 7 месяцев находится в разработке.

Официальная страница плагина WordPress.org тесно синхронизирована с последним релизом 1.x, хотя и отстает от нескольких коммитов. Плагин создал Райан Маккью, который является руководителем проекта и основным автором плагина.

WP API Github – страница, где идет активное отслеживание ошибок, управление версиями и обработка релизов. API имеет свой собственный аккаунт на Github, а также несколько смежных репозиториев.

Чтобы понять состояние WP REST API, надо мыслить в терминах версий Develop, Master, and Stable.

Если вы используете REST API в продакшне, вы должны использовать только версию WordPress.org. Версии Master и Development могут использоваться только для тестирования и разработки.

Улучшения, которые появятся в новой версии

Долгий цикл разработки новой версии REST API объясняется тем, что была запланирована масштабная реконструкция проекта.

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

В этой версии придут многочисленные изменения, среди которых особо следует отметить следующие:

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

Участники WordPress REST API

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

wp-api-contributors-752x484

Помимо них, есть еще около 400 человек, которые посещают канал #core-restapi в Slack. Все они заслуживают продолжительных оваций.

Основы использования WordPress REST API

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

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

Давайте рассмотрим несколько простых примеров считывания данных с помощью GET.

URL для получения контента с сайта Post Status будет выглядеть следующим образом:

https://poststatus.com/wp-json/posts

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

https://poststatus.com/wp-json/posts?filter[posts_per_page]=2&filter[order]=ASC

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

https://poststatus.com/wp-json/posts?type[]=poststatus_org

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

https://poststatus.com/wp-json/posts?type[]=poststatus_org&filter[posts_per_page]=2&filter[order]=ASC

Перейдя по этим URL, вы увидите JSON-данные. Попробуйте ввести какой-нибудь из этих URL в браузер, чтобы увидеть возвращенные данные.

Способ получения этих данных напоминает использование WP_Query в стандартном цикле WordPress. Если вы не определите параметры, то в таком случае будут использовать стандартные значения WP_Query.

Эти URL возвращают данные, однако, естественно, вам нужно будет получать эти данные программно. Вы можете сделать это в WordPress-сборке (или вне ее) при помощи двух общих методов: PHP и AJAX.

Обработка данных будет напоминать обработку любых других JSON-данных. Естественно, вы можете запрашивать не только записи, но я просто хотел показать базовую концепцию.

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

Источник: poststatus.com

oddstyle.ru

WordPress REST API (Версия 2)

WordPress is moving towards becoming a fully-fledged application framework, and we need new APIs. This project was born to create an easy-to-use, easy-to-understand and well-tested framework for creating these APIs, plus creating APIs for core.

This plugin provides an easy to use REST API, available via HTTP. Grab your site’s data in simple JSON format, including users, posts, taxonomies and more. Retrieving or updating data is as simple as sending a HTTP request.

Want to get your site’s posts? Simply send a GET request to /wp-json/wp/v2/posts. Update user with ID 4? Send a PUT request to /wp-json/wp/v2/users/4. Get all posts with the search term «awesome»? GET /wp-json/wp/v2/posts?filter[s]=awesome. It’s that easy.

The WordPress REST API exposes a simple yet easy interface to WP Query, the posts API, post meta API, users API, revisions API and many more. Chances are, if you can do it with WordPress, the API will let you do it.

The REST API also includes an easy-to-use JavaScript API based on Backbone models, allowing plugin and theme developers to get up and running without needing to know anything about the details of getting connected.

Check out our documentation for information on what’s available in the API and how to use it. We’ve also got documentation on extending the API with extra data for plugin and theme developers!

All tickets for the project are being tracked on GitHub. You can also take a look at the recent updates for the project.

Install the WP REST API via the plugin directory, or by uploading the files manually to your server.

For full-flavoured API support, you’ll need to be using pretty permalinks to use the plugin, as it uses custom rewrite rules to power the API.

Once you’ve installed and activated the plugin, check out the documentation for details on your newly available endpoints.

Installation Instructions

Install the WP REST API via the plugin directory, or by uploading the files manually to your server.

For full-flavoured API support, you’ll need to be using pretty permalinks to use the plugin, as it uses custom rewrite rules to power the API.

Once you’ve installed and activated the plugin, check out the documentation for details on your newly available endpoints.

ru.wordpress.org


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта