Перевод оригинальной страницы https://www.drupal.org/blog/how-drupal-continues-to-evolve-towards-an-ap... на русский язык.
Прошло 12 месяцев с момента моего последнего отчета об изменениях в инициативе API-first Drupal. За последний год мы достигли значительного прогресса, поэтому я хотел бы предоставить еще одно обновление.
Два с половиной года назад мы запустили Drupal 8.0 со встроенным REST API. Это ознаменовало начало эволюции Drupal как платформы API-first. С тех пор в каждом из пяти новых выпусков Drupal 8 появились значительные улучшения API веб-сервисов.
Хотя я был сторонником добавления веб-сервисов к Drupal 8 пять лет назад, сегодня я еще больше уверен в правильности этого направления развития. Важные рыночные тенденции поддерживают эту стратегию, в том числе интеграцию с другими технологическими решениями, распространение новых устройств и цифровых каналов, растущее внедрение инфраструктур JavaScript и многое другое.
На самом деле, я считаю, что эта функциональность настолько важна для успеха Drupal, что в течение нескольких лет Acquia спонсировал одного или нескольких разработчиков программного обеспечения на полный рабочий день, чтобы вносить вклад в API веб-сервисов Drupal, помимо финансирования различных участников сообщества. Сегодня два разработчика Acquia работают над API-интерфейсами веб-сервисов Drupal на полный рабочий день.
API REST в базовом Drupal
В то время как Drupal 8.0 поставляется с базовым API REST, сообщество прилагает все усилия, чтобы улучшить свои возможности, надежность и охват тестированием. Drupal 8.5 выпушен 5 месяцев назад и включает значительные улучшения и новые функции API REST. Drupal 8.6 будет выпущен в сентябре с новой пакетом улучшений.
Одним из усовершенствований Drupal 8.6 является перенос кода API-first в отдельные модули, без использования модуля REST. Это может показаться не значительным изменением, но это так. В долгосрочной перспективе все модули Drupal должны поставляться с API-интерфейсами веб-сервисов, а не в зависиеть от центрального модуля API для предоставления своих API-интерфейсов, что сейчас заставляет их учитывать влияние на клиенты REST API при внесении изменений.
Еще одно улучшение, которое мы внесли в REST API в Drupal 8.6, - это поддержка загрузки файлов. Если вы хотите понять, сколько мыслей и забот поместили в поддержку REST для загрузки файлов, посмотрите сообщение блога Wim Leers: API-first Drupal: загрузка файлов. Тяжелая работа над безопасностью загрузки файлов, поддержкой больших файлов, оптимизацией производительности и хорошим опытом разработчиков.
JSON API
Включение модуля API JSON в ядро важно, поскольку JSON API все чаще встречается в сообществе JavaScript.
Первоначально мы планировали добавить JSON API к Drupal 8.3, но этого не произошло. Когда этот план был первоначально задуман, мы обнаружили, что подсистемы Routing, Entity, Field и Typed Data Drupal были недостаточно подготовлены к для API-first. До конца 2017 года необходимо было подготовить и укрепить эти основополагающие подсистемы.
Те же недостатки, которые препятствовали развитию REST API, также проявились в JSON API, GraphQL и других API-модулях. Внесение изменений в них, а не добавление обходных решений требует времени. Тем не менее, этот подход позволит создать более простую экосистему, основанную на API и более быстрый прогресс!
Несмотря на задержку, команда JSON API добилась невероятных успехов. Всего за последние шесть месяцев они выпустили 15 версий своего модуля. Они добились улучшений с высокими темпами, включая всестороннее тестирование, лучшее соответствие спецификациям JSON API и многочисленные улучшения стабильности.
Сообщество Drupal стремится к этим улучшениям, а использование модуля API JSON выросло на 50% в первой половине 2018 года. Тот факт, что использование модуля увеличилось, а общее количество открытых проблем снизилось, является доказательством того, что Модуль JSON API стал стабильным.
Друпал сообщество будучи взволнованным, как и я, быстрыми темпами развития и готовности модуля JSON API, мы решили не добавлять JSON API в качестве экспериментального модуля для Drupal 8.6. Вместо этого мы планируем перенести его на ядро Drupal в начале цикла разработки Drupal 8.7 и включить его как стабильный в Drupal 8.7.
GraphQL
В течение более двух лет я выступал за то, чтобы мы рассматрели возможность добавления GraphQL в ядро Drupal.
Хотя основные коммиттеры и основные участники еще не сделали GraphQL еще одним приоритетом, был достигнут большой прогресс в модуле GraphQL, который приближается к его первой стабильной версии. Несмотря на отсутствие стабильного релиза, его внедрение за первые шесть месяцев 2018 года увеличилось на 200% (хотя его использование по-прежнему измеряется на сотнях сайтов, а не на тысячах).
Я также рад, что наконец-то вышла новая версия спецификация GraphQL, которая больше не обременена проблемами лицензирования. Это отличная новость для сообщества Open Source и использования GraphQL.
Я пока не знаю, поддерживают ли создатели модуля GraphQL мою рекомендацию по добавлению GraphQL в ядро. Мы намеренно отложили эти разговоры, пока не стабилизировали API REST и не добавили поддержку JSON модуля. Мне хотелось бы чтобы модуль GraphQL был добавлен в будущую версию Drupal 8. Независимо от того, что мы решим, GraphQL является важным компонентом для API-первого Drupal, и я очень рад его развитию.
OAuth 2.0
Обновление API веб-служб не будет полным, без аутентификации. В прошлом году я объяснил, как модуль OAuth 2.0 станет еще одним логическим дополнением к ядру Drupal.
С тех пор модуль OAuth 2.0 был пересмотрен, чтобы исключить его собственную реализацию OAuth 2.0 и вместо этого использовать сервер OAuth 2.0 на PHP. Эта реализация широко используется с более чем 5 миллионами инсталляций. Вместо того, чтобы иметь отдельную реализацию, специфичную для Drupal, которую мы должны поддерживать, мы можем использовать стандартную реализацию де-факто, поддерживаемую другими.
API-first экосистема
Хотя я лично больше всего сосредоточился на REST API и JSON API, а GraphQL занимает второе место, также приятно видеть, что разрабатываются многие другие API-модули:
OpenAPI, для документации по API на основе стандартов, теперь в бета-версии 1
JSON API Extras, для формирования JSON API для конкретных потребностей вашего сайта (изменения полей, удаление полей и т. д.)
JSON-RPC, для помощи в выполнении общих действий администратора сайта Drupal, например, для очистки кеша
... и многое другое
Вывод
Надеюсь, вы так же в восторге от предстоящего выпуска Drupal 8.6, как и я, и всех улучшений веб-сервисов, которые он принесет. Я очень благодарен всем участниках разработки за вклад, который они сделали для Drupal API, и за невероятный импульс, достигнутый этими проектами и инициативами.
Особая благодарность Wim Leers (Acquia) и Gabe Sullice (Acquia) за вклад в это сообщение в блоге и Mark Winberry (Acquia) и Jeff Beeman (Acquia) за отзывы в процессе написания.