Рейтинг:1

Как отправить контактную форму через JSON:API?

флаг cn

Каковы требования для отправки контактной формы с использованием JSON:API?

Я включил основной модуль «Контакты» и настроил пользовательскую контактную форму для всего сайта. Я разрешил пользователям anon + auth отправлять форму.

Затем я включил JSON:API. Я вижу контактную форму на /jsonapi/contact_form/contact_form:

"данные":[
   {
      "type":"contact_form--contact_form",
      "id": "d97e73f1-7d06-4bf0-b05b-1c654a659dfc",
      "ссылки": {
         "себя":{
            "href":"https://example.lndo.site/jsonapi/contact_form/contact_form/d97e73f1-7d06-4bf0-b05b-1c654a659dfc"
         }
      },
      "langcode":"ja",
      "статус": правда,
      "зависимости": [
         
      ],
      "drupal_internal__id":"example_support",
      "label":"Пример поддержки",
      "получатели": [
         "[email protected]"
      ],
      "Ответить":"",
      "вес":0,
      "message":"Спасибо за отправку.",
      "перенаправить":""
   }
],

Но какая конечная точка мне нужна для отправки этой формы?

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

Этот вопрос предполагает, что /entity/contact_message Конечная точка REST должна быть включена для отправки контактной формы. Верно ли это и для JSON:API?

Я запутался, потому что, используя JSON: API, я могу отправлять узлы без включения каких-либо конечных точек REST путем отправки POST в /jsonapi/узел/content_type.

Alireza Tabatabaeian avatar
флаг cn
json api не зависит от конечной точки отдыха, поскольку почти в каждой ситуации отправка почтового запроса в `Entity_type/Bundle` приведет к созданию нового объекта этого пакета, поэтому, если это не сработает, возможно, это связано с модулем json api, но я думаю, что включение конечной точки отдыха не должно помочь в этой ситуации
Рейтинг:1
флаг cn

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

Однако, учитывая основная проблема с не отправкой уведомлений и большое количество проблем RTBC и «Требуется проверка» в очереди проблем хранилища контактов по состоянию на 30 января 2022 г. я решил использовать другой подход. Если пользователь расстроен и обращается за поддержкой, особенно ужасно, если какая-то ошибка приводит к тому, что его отправка пропадает или ответ задерживается.

Итак, я решил это, используя Веб-форма REST модуль:

  1. Установите модуль.
  2. Включить Отправить веб-форму Ресурс REST с использованием модуля пользовательского интерфейса REST.
  3. Создайте веб-форму.
  4. Добавьте код во внешнее приложение для отправки формы.

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

Ответить или комментировать

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