Saltar al contenido principal
El mismo manejador también puede responder a peticiones HTTP. Añadiremos dos rutas:
  • un endpoint POST para generar un documento, y
  • un endpoint público GET que renderiza un documento como una página web imprimible.
Ambos usan httpRouteTriggerSettings. Las rutas de la aplicación se encuentran bajo la ruta /s/; en las instancias locales y autoalojadas, esa ruta la sirve tu servidor de Twenty (p. ej., http://localhost:2020/s/documents/generate). En Twenty Cloud, RestApiClient resuelve la ruta a través del dominio de funciones del espacio de trabajo.

Ruta POST — generar bajo demanda

Esto reutiliza generateDocumentHandler, así que no hay lógica para repetir: solo un adaptador fino que lee el cuerpo de la solicitud.
El manejador compartido devuelve un status sugerido en caso de fallo, así que la ruta puede responder con un código apropiado 4xx/5xx. isAuthRequired: true significa que la persona que llama debe presentar un token válido — el componente frontal en el siguiente capítulo pasa el token de acceso del usuario automáticamente.

Ruta GET — renderizar como una página web

Para devolver HTML en lugar de JSON, envuelve el cuerpo en un encabezado Response con una cabecera Content-Type. Esta ruta es pública (isAuthRequired: false) por lo que un documento generado puede ser compartido como un enlace.
documentHtmlPage renderiza el cuerpo de Markdown a HTML (con marked, saneado) y lo deja caer en una limpieza, página imprimible que muestra sólo el contenido plantilla — el mismo aspecto que el PDF y la vista previa dentro de la aplicación. Ver el ayudante.

Pruébalo

Con una plantilla y una persona en tu espacio de trabajo, llama a la ruta (toma un token desde Ajustes → APIs & Webhooks):
Abra el documento devuelto en su navegador:
Una página web de documentos procesados

La ruta pública GET renderiza el documento como una página imprimible.

También puedes transmitir los registros de una función mientras pruebas con yarn twenty dev:function:logs, o invocarlo directamente con yarn twenty dev:function:exec.
Después de este paso: la aplicación puede generar documentos a través de HTTP y servirlos como páginas web. Ahora hagámoslo utilizable sin curl.

Siguiente: construyendo la interfaz de usuario →

Vistas, navegación, un comando y un componente frontal.