На выходных продолжалась дискуссия вокруг направления WP REST API, поскольку Мэтт Малленвег и Райан МакКью обратились в свои блоги WordPress, чтобы прояснить заявления , сделанные на совещании по статусу на прошлой неделе . Различия во мнениях вызывают жаркие споры о том, что представляет собой цель для готовности API к работе с ядром.
В посте под названием « Курица и яйцо » Малленвег обратился к недавнему обсуждению WP REST API, поделившись анекдотом из книги, посвященной истории эпохи хип-хопа середины 90-х.
Мне нравится идея, что Questlove понимает, что в песне чего-то не хватает, и возвращается в будку, чтобы продолжить работу над ней, пока она не найдет отклик у его целевой аудитории. Песня, которая не стоит на месте сама по себе, не будет лучше, если она будет включена в альбом. (Или у Samsung были бы самые популярные приложения на Android.) Поклонники слышат заботу и качество каждого трека, и они становятся супер-фанатами.
Мулленвег связывает это с соображениями при создании продуктов для Интернета:
Это напряжение присутствует во всем, что мы производим. Где проходит грань между 1.0 — самым одиноким и минимально жизнеспособным продуктом ? Или речь идет о минимально привлекательном продукте ? Мы строим машину без кондиционера или машину без колес?
«Опора» устарела, но гораздо хуже предполагать, что дистрибутив решит что-то основное в вашем продукте, что не работает.
Мулленвег упомянул ту же аналогию с автомобилем во время встречи на прошлой неделе. В ответ на комментарий комментатора, который попросил дать дополнительные разъяснения о том, как аналогия применима к REST API, Малленвег сказал следующее:
Если вы хотите использовать хорошую эвристику в целом: автомобили существовали десятилетиями, миллионы транспортных средств и водителей, прежде чем у них появился кондиционер. Основным ценностным предложением автомобиля является транспорт, а кондиционер просто помогает вам добраться туда более комфортно. Вам не нужна была машина, чтобы получить кондиционер, вы могли иметь его в своем доме. Кондиционер может заставить вас предпочесть одну машину другой, но вы, вероятно, не будете ходить пешком или ездить на лошади, если в машине не будет кондиционера, вы просто опустите окна.
Возникает вопрос, что представляют собой колеса? Участники этого обсуждения разделились во мнениях относительно того, готовы ли существующие конечные точки к объединению в ядро. Члены команды WP REST API, многие из которых уже успешно используют API в производственной среде, считают, что конечные точки уже готовы. Текущее состояние API предлагает возможность получать контент в WordPress и из него, открывая его для более удобного взаимодействия с другими платформами, что, по мнению многих, является основным вариантом использования.
Мулленвег и другие участники, присоединившиеся к обсуждению на прошлой неделе, выступают за создание чего-то более полного — REST API, поддерживающего все, что доступно в wp-admin. Это включает в себя множество функций управления сайтом WordPress и отодвигает API на несколько выпусков от основной готовности.
В комментарии к нашему первоначальному отчету Дрю Джейнс отстаивал то, что он считает золотой серединой, которая обеспечивает надежную отправную точку. Это будет включать в себя устранение отсутствующих частей в существующих конечных точках перед их объединением (такие элементы, как защищенные паролем сообщения, автосохранение и предварительный просмотр сообщений, а также метаданные).
«Как я и другие представители лагеря участников/коммиттеров сказали в чате, может быть золотая середина», — сказал он. «Будет ли это в конечном итоге выглядеть как четыре основных конечных точки, четыре основных конечных точки с некоторой разновидностью, четностью XML-RPC или некоторой мерой четности wp-admin, еще неизвестно», — сказал он.
В сообщении под названием « Прогрессивное улучшение с помощью WordPress REST API » Райан МакКью описал полностью итеративный подход, который будет способствовать распространению сейчас и развертыванию большего количества конечных точек в будущих выпусках:
Прогрессивное улучшение — это наше ключевое решение нескольких связанных проблем: совместимость с будущими функциями и версиями WordPress и надежная обработка типов данных в WordPress. Прогрессивное усовершенствование также разблокирует проект REST API и гарантирует, что нет необходимости ждать, пока REST API сравняется со всеми функциями администратора WordPress.
В сообщении МакКью более подробно рассказывается о возможностях обнаружения функций REST API, которые позволяют разработчикам легко обнаруживать поддержку функций и создавать их совместимым с предыдущими версиями способом, ожидая основной поддержки.
Является ли распространение ответом?
Во время встречи на прошлой неделе МакКью сказал , что продолжение разработки проекта в качестве функционального плагина принесет больше вреда, чем пользы. Если REST API не будет разрешен к выпуску без поддержки всего в wp-admin, команда будет вынуждена продолжать работу над ним в качестве функционального плагина, одновременно устраняя сложные препятствия в ядре WordPress. Поскольку всего четыре основных участника работают над проектом неполный рабочий день, это требование может остановить WP REST API на неопределенный срок.
«Мы считаем, что прогрессивный подход к совершенствованию — лучший подход для продолжения разработки API», — сказал МакКью. «Прогрессивное усовершенствование — это парадигма, которую должен принять проект REST API, если мы хотим добавить его (без нарушения обратной совместимости) в течение следующих 10 лет».
Мулленвег, который придерживался итеративного подхода к разработке на протяжении всей истории WordPress, опасается зацикливаться на распространении как на единственном пути вперед.
Чем больше становится использование WordPress, тем громче слышны его шаги. Итерация REST API в ядре с распространением на миллионы сайтов может повлиять на Интернет так, как участники пока не могут предвидеть. Как говорится, тяжела голова, на которой корона. Волны распространяются не только на сайты WordPress, но и на внешние платформы, которые также будут использовать API.
Участники все еще обсуждают нюансы итеративной разработки ядра по сравнению с предоставлением более полного API. Между тем, внедрение сдерживается неопределенностью вокруг проекта и тем фактом, что он по-прежнему зависит от плагинов. Пока не ясно, будут ли участники WordPress копаться и настаивать на включении конечных точек вопреки рекомендации Мулленвега, или же они предпочтут потратить больше времени на полировку существующих конечных точек. Если от команды WP REST API требуется убедиться, что API может поддерживать замену wp-admin, он может не появиться в ядре до конца этого года или позже.