Перейти к основному содержанию

Обзор

Этот же обработчик также может отвечать на HTTP-запросы. Мы добавим два маршрута:
  • POST конечная точка интерфейса для генерации документа, и
  • публичная GET конечная точка, которая отображает документ в виде печатной веб-страницы.
Оба используют httpRouteTriggerSettings. Маршруты приложения доступны по пути /s/; на локальных и самостоятельно размещенных инстансах этот путь обслуживается вашим сервером Twenty (например, http://localhost:2020/s/documents/generate). В Twenty Cloud RestApiClient разрешает путь через домен функций рабочего пространства.

Маршрут POST — генерировать по запросу

Это повторно использует generateDocumentHandler, так что нет логики повторять — просто тонкий адаптер, который читает тело запроса.
Общий обработчик при сбое возвращает предлагаемое значение status, чтобы маршрут мог ответить корректным кодом 4xx/5xx. isAuthRequired: true означает, что звонящий должен представить действительный токен — передний компонент в следующей главе передает токен доступа пользователя .

GET маршрут — отображается как веб-страница

Чтобы вернуть HTML вместо JSON, оберните тело в Response с заголовком Content-Type. Этот маршрут является публичным (isAuthRequired: false), так что сгенерированный документ может быть использован как ссылка.
documentHtmlPage отображает тело Markdown в HTML (с marked, увлажняет) и выбросит его в чистый, страница для печати, которая показывает только содержимое шаблона — так же, как и PDF и превью для приложений. См. помощник.

Попробовать

Имея шаблон и Person в рабочем пространстве, вызовите маршрут (получите токен в Настройки → Разработчики → API):
Откройте возвращаемый документ в вашем браузере:
Веб-страница документа

Публичный GET маршрут отображает документ в виде страницы для печати.

Вы также можете транслировать логи функции во время тестирования с помощью twenty app logs или вызвать её напрямую с помощью twenty app exec.
После этого шага: приложение может генерировать документы по HTTP и отдавать их как веб-страницы. Теперь давайте сделаем его пригодным для использования без curl.
card-page-tutorial-ui
Далее: создание интерфейса →
Представления, навигация, команда и фронтенд-компонент.