WordPress REST API — для чего и что это такое?
Сегодня мы поговорим о 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-стандарт, который более сложен в использовании.
Под всем сказанным можно сделать следующие выводы:
- API — это разъем на любом программном обеспечении;
- REST – это дизайн данного разъема;
- JSON – это кабель с универсальными вилками на концах;
JSON REST API и WORDPRESS
Ладно, мы поняли, что штука эта — полезная. Но разве 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 админ-панель фактически на основе любого девайса или платформы.
- Новый API может привнести множество альтернатив стандартному бэкенду, включая мобильные приложения, доступные для администрирования WordPress
- Так как поддержка JSON изначально встроена в iOS и Android, то монополия WordPress-приложений станет историей.
- Сторонний контент также будет доступен WordPress. И даже более того, API делает WordPress-контент независимым от языка программирования и среды, так что вы можете брать материалы из любого источника и отображать их, как захотите.
- Ruby on Rails и другие фреймворки получат доступ к функциональности WordPress со всеми вытекающими из этого возможностями, и преимущества этих областей станут доступны для WordPress-пользователей.
Эта новость особенно порадует разработчиков, которые работают с фронтендом, так как они смогут менять фронтенд, как угодно, не затрагивая бэкенд.
Для не-разработчиков эта технология может быть использована для создания новых и решений для интеграции контента из других веб-профилей с их WordPress-сайтами.
WordPress входит в новую эру
WordPress не только станут доступны новые типы контента, но благодаря новому API и контент WordPress станет доступен всему интернету. Системы, построенные не на основе PHP, смогут использовать данные WordPress, адаптируя их с помощью собственных приложений.
Но интереснее всего звучит возможность использования WordPress-продуктов, к примеру, плагинов, на других платформах, и системах управления контентом.
Мобильные приложения, созданные на базе WordPress, будут доступны повсеместно, что является прекрасной новостью для всех тех, кто их создает или использует. Я думаю, что появятся решения, которые позволят обычному пользователю автоматически создавать мобильные приложения на базе WordPress-сайтов.
В итоге:
Как вы сами видите, новый WordPress REST API трансформирует WordPress в нечто новое. Он откроет WordPress всему интернету, и позволит платформе органичнее взаимодействовать со сторонними приложениями и сервисами. Появление WordPress REST API порадует не только разработчиков, но и обычных пользователей, которые получат множество новых возможностей.
WP REST API — документация (англ).
Автор оригинала Nick Schäferhoff
Лучше бы разрабы над безопасностью работали. WP — одна из самых взламываемых CMS.
А этот API принесёт большинству простых пользователей ещё больше головной боли.
Это не столько проблема WP, сколько проблема пользователей. Разумеется одна из самых, потому что самая популярная.
Добрый день!
Подскажите, насколько целесообразно уже работающий магазин на woocommerce соединить по API с программой поставщика, чтобы информация о наличии всегда была актуальной. А то можно денег вложить в разработку, а потом поиметь головную боль. Или лучше открыть магазин на другой CMS? Спасибо.
Добрый. Вам виднее. Будет головная боль или нет, зависит от качества трудов вашего разработчика, но не от WC.
Спасибо за статью, доступное изложение мне было нужно для начала.
Добрый день! Подскажите, в каком тарифном плане доступен REST API.
В бесплатном тарифе https://[мойсайт].wordpress.com/wp-json/wp/v2/posts возвращает страницу с надписью «Ошибка. Страница не найдена.», хотя, как я понимаю, должен вернуть вот такой результат:
http://demo.wp-api.org/wp-json/wp/v2/posts
Или я что-то не так понимаю?
Заранее спасибо!