Passer au contenu principal
Le même gestionnaire peut également répondre aux requêtes HTTP. Nous allons ajouter deux itinéraires :
  • un point de terminaison POST que l’interface utilisateur appelle pour générer un document, et
  • un point de terminaison public GET qui rend un document en tant que page web imprimable.
Les deux utilisent httpRouteTriggerSettings. Les routes de l’application sont accessibles via le chemin /s/ ; sur les instances locales et auto-hébergées, ce chemin est géré par votre serveur Twenty (par exemple, http://localhost:2020/s/documents/generate). Sur Twenty Cloud, RestApiClient résout le chemin via le domaine des fonctions de l’espace de travail.

Itinéraire POST — générer à la demande

Ceci réutilise generateDocumentHandler, donc il n’y a pas de logique à répéter — juste un adaptateur mince qui lit le corps de la requête.
Le gestionnaire partagé renvoie un status suggéré en cas d’échec, donc la route peut répondre avec un code approprié 4xx/5xx. isAuthRequired: true signifie que l’appelant doit présenter un jeton valide — le composant frontal dans le chapitre suivant passe automatiquement le jeton d’accès de l’utilisateur .

Obtenir la route - afficher en tant que page web

Pour retourner du HTML au lieu de JSON, enveloppez le corps dans un en-tête Response avec un Content-Type. Cette route est publique (isAuthRequired: false) donc un document généré par peut être partagé comme un lien.
documentHtmlPage rend le corps de Markdown en HTML (avec marked, assaini et le dépose dans une netteté page imprimable qui ne montre que le contenu du modèle — la même apparence que le PDF et l’aperçu dans l’application. Voir l’aide.

Essayez-le

Avec un modèle et une personne dans votre espace de travail, appelez la route (récupérez un jeton à partir de Paramètres → APIs & Webhooks):
Ouvrez le document retourné dans votre navigateur :
Une page web de document rendu

L'itinéraire public GET rend le document en tant que page imprimable.

Vous pouvez également diffuser les logs d’une fonction en testant avec yarn twenty dev:function:logs, ou l’appeler directement avec yarn twenty dev:function:exec.
Après cette étape : l’application peut générer des documents via HTTP et les servir comme pages web. Maintenant, rendons-le utilisable sans curl.

Prochaine étape : construire l'interface utilisateur →

Vues, navigation, commande et composant frontal.