Fermer

octobre 14, 2020

Créer et déployer une forme angulaire avec Netlify Forms and Edge


À propos de l'auteur

Zara Cooper est une développeur de logiciels qui aime partager ce qu'elle apprend en tant que développeur avec les autres. Quand elle a du temps à perdre, elle aime lire un bon livre…
En savoir plus sur
Zara

Netlify Forms est une fonction de gestion de formulaire qui reçoit automatiquement les soumissions de formulaires HTML. Dans cet article, nous verrons comment l'utiliser avec les formulaires réactifs angulaires et comment déployer l'application finale sur la plate-forme d'hébergement de Netlify, Netlify Edge.

La création du flux de travail frontal, backend et de déploiement d'une application prend beaucoup de temps travail. Dans les cas où votre application ne collecte qu'une quantité limitée de soumissions de données de ses utilisateurs, la création d'un backend complet peut ne pas valoir le temps et l'effort. Une alternative au développement d'un backend complet consiste à utiliser Netlify Forms. Dans ce didacticiel, je vais vous expliquer comment utiliser un formulaire réactif angulaire avec Netlify Forms. Étant donné que Netlify Forms ne fonctionne que lorsqu'il est déployé sur Netlify, je vais également illustrer comment déployer votre application sur Netlify Edge.

The Toolkit

Un formulaire réactif angulaire est un formulaire qui a un modèle de données structuré créé explicitement dans un composant classe utilisant les fournisseurs ReactiveFormsModule . Un modèle de formulaire est créé pour chaque élément d'entrée dans la vue de formulaire. Ce modèle de formulaire est une instance de la classe FormControl et il garde la trace de la valeur de l'élément de formulaire. Le modèle de formulaire est immuable car chaque fois qu'une modification est apportée au modèle, l'instance FormControl renvoie un nouveau modèle de données au lieu de mettre à jour l'ancien modèle. Son immuabilité rend la détection des changements plus efficace et permet la modification des données avec des opérateurs observables. Les éléments d'entrée de formulaire étant directement connectés à leurs modèles de formulaire, les mises à jour entre eux sont synchrones et ne reposent pas sur le rendu de l'interface utilisateur.

Netlify est une plate-forme qui vous permet de créer, de déployer et d'héberger des sites créés avec diverses technologies. Les sites créés avec Angular peuvent être hébergés sur Netlify. Netlify fournit également une multitude d'outils qui simplifient, automatisent et augmentent les versions et les déploiements de ces sites. Nous allons utiliser deux de ses produits dans ce didacticiel: Netlify Edge et Netlify Forms.

Comme décrit précédemment, Netlify Forms est une fonctionnalité de gestion de formulaire qui reçoit automatiquement les soumissions de formulaires HTML. Elle ne nécessite aucune configuration de traitement de soumission, comme la création d'API, de scripts, etc. Cette fonctionnalité ne fonctionne qu'avec les formulaires des sites déployés sur Netlify. Il est activé par défaut, ce qui réduit davantage la configuration nécessaire pour configurer les soumissions de formulaires. La gestion des soumissions est configurée pendant le déploiement, où les fichiers HTML d’un site sont analysés par les robots de compilation de Netlify.

Netlify Edge est un réseau mondial de distribution d’applications sur lequel les sites et les applications sont publiés. Il fournit des fonctionnalités telles que les tests A / B, les restaurations, la préparation et les déploiements par étapes. Tous les déploiements sur Netlify Edge sont atomiques, ce qui signifie qu'un site n'est actif que lorsque tous les fichiers ont été téléchargés / mis à jour et que les modifications apportées au site sont prêtes. Une fois qu'un site est déployé, un sous-domaine lui est attribué sur netlify.app lorsqu'il est déployé en production. Netlify Edge prend également en charge les déploiements d'aperçu et de branche (préparation, développement, etc.).

La gestion des soumissions de Netlify Forms fonctionne car les robots de génération analysent les formulaires HTML sur un site pendant le déploiement. Les formulaires rendus Javascript côté client comme ceux des sites angulaires compilés ne seront pas trouvés par ces robots. Ainsi, la configuration normale de Netlify Forms ne fonctionnera pas avec Angular Forms.

Cependant, il existe une solution à ce problème. Pour lui permettre de recevoir des soumissions, un formulaire HTML simple caché est ajouté au fichier index.html . Ce formulaire fonctionne avec les bots de construction. Lors de la soumission du formulaire angulaire, une demande de publication est faite à ce formulaire caché qui est ensuite capturé par Netlify Forms.

Dans cet article, nous allons créer un formulaire réactif. Nous allons également développer un service pour faire une demande de publication dans le formulaire HTML masqué. Enfin, nous déploierons l'application sur Netlify Edge.

Exemple

Pour illustrer comment créer l'application, nous prendrons un exemple de formulaire de commentaires commun sur de nombreux sites Web. Nous utiliserons ce formulaire pour recueillir les commentaires / réclamations, questions et suggestions des utilisateurs du site ainsi que leur nom et leur adresse e-mail. Nous l'utiliserons également pour recueillir leur évaluation du site.

Conditions requises

Pour suivre ce tutoriel, vous aurez besoin d'un compte Netlify et de la CLI Angular installés. Si vous ne disposez pas de la CLI, vous pouvez l'installer à l'aide de npm.

 npm install -g @ angular / cli

Si vous n'êtes pas encore inscrit à un compte Netlify, vous pouvez en créer un ici . Netlify propose une inscription via Github, Gitlab, Bitbucket ou Email. En fonction de la méthode de déploiement que vous choisissez, il peut s'agir d'autres exigences. Ils seront indiqués sous chaque méthode de déploiement.

Configuration de l'application

Pour commencer, nous allons créer l'application et l'appeler feedback . Lors de sa création, ajoutez-lui un routage lorsque vous y êtes invité dans les invites.

 ng new feedback

Ensuite, nous allons générer trois éléments: un formulaire de commentaires, une page de message d'envoi réussi et une page 404. Netlify Forms vous permet de naviguer vers une page une fois la soumission de formulaire réussie. C’est pour cela que nous utiliserons le SuccessComponent .

 ng g c feedback
ng g c succès
ng g c page non trouvée

Après avoir généré les composants, nous ajouterons les routes à chaque page dans le AppRoutingModule dans le fichier app-routing.module.ts .

 const routes: Routes = [
  { path:'', component: FeedbackComponent },
  { path: 'success', component: SuccessComponent },
  { path: '**', component: PageNotFoundComponent }
];

Nous utiliserons le service FormBuilder pour créer notre formulaire réactif. C'est parce qu'il est plus pratique et moins répétitif que l'utilisation de contrôles de formulaire de base. Pour y avoir accès, nous devrons enregistrer le ReactiveFormsModule dans le fichier app.module.ts .

Puisque nous allons faire une demande de publication dans le HTML masqué formulaire, nous devons également enregistrer le HttpClientModule .

 import {ReactiveFormsModule} de '@ angular / forms';
import {HttpClientModule} depuis '@ angular / common / http';

@NgModule ({
  importations: [
    // other imports
    ReactiveFormsModule,
    HttpClientModule
  ]
})
classe d'exportation AppModule {}

Continuez à changer le contenu de app.component.html pour avoir juste la sortie du routeur.

   

Les différentes pages partageront un certain style. Ajoutez donc le style ci-dessous à styles.css .

 html, body {
    hauteur: 100%;
    largeur: 100%;
    affichage: flex;
    align-items: flex-start;
    justify-content: centre;
}

h1 {
    marge: 0;
    text-align: centre;
}

h1, p, étiquette {
    famille de polices: Arial, Helvetica, sans-serif;
}

p {
    largeur max: 25rem;
}

#récipient {
    bordure: aucune;
    rembourrage: .4rem;
    rayon de la frontière: 0;
    flex-direction: colonne;
    affichage: flex;
}

hr {
    largeur: 80%;
}

bouton {
    Couleur blanche;
    couleur de fond: noir;
    taille de la police: grande;
    rembourrage: .5rem;
    rayon de la frontière: .5rem;
    margin-top: 1rem;
}

@ écran multimédia et (hauteur min .: 700px) {
    html, corps {
        align-items: centre;
        justify-content: centre;
    }
}

@ écran multimédia et (largeur min: 480px) {
    #récipient {
        bordure: .1rem solide gris clair;
        rembourrage: 2rem;
        rayon de la frontière: .5rem;
    }

    html, corps {
        align-items: centre;
        justify-content: centre;
    }
}

Créer le formulaire réactif

Dans notre classe FeedbackComponent nous commencerons par importer le service FormBuilder que nous utiliserons pour créer le formulaire. Nous importerons également la classe Validators pour la validation de l'entrée de formulaire.

 import {FormBuilder, Validators} depuis '@ angular / forms';

Nous injecterons ensuite le service FormBuilder en l'ajoutant au constructeur FeedbackComponent .

 constructeur (private fb: FormBuilder) {}

Ensuite, nous définirons le modèle de formulaire à l'aide de la méthode group du service FormBuilder injecté. Nous ajouterons également une propriété errorMsg pour contenir toutes les erreurs que nous pourrions rencontrer lors de la soumission de la saisie du formulaire. Une méthode closeError qui fermera l'alerte d'erreur qui s'affiche sur le formulaire.

Chaque contrôle du modèle de formulaire sera vérifié à l'aide de validateurs de la classe Validators . Si l'une des entrées échoue à la validation, le formulaire sera invalide et la soumission sera désactivée. Vous pouvez choisir d'ajouter plusieurs validateurs à un contrôle de formulaire comme dans le cas du contrôle email .

 classe d'exportation FeedbackComponent {
  feedbackForm = this.fb.group ({
    prénom: ['', Validators.required],
    nom de famille: ['', Validators.required],
    courriel: ['', [Validators.email, Validators.required]],
    type: ['', Validators.required],
    description: ['', Validators.required],
    évaluation: [0, Validators.min(1)]
  });

  errorMsg = '';

  closeError () {
    this.errorMsg = '';
  }

  // ...
}

Dans le modèle du composant ( feedback.component.html ), nous ajouterons ceci.

{{errorMsg}}

✖︎

Feedback Form


Nous aimerions vos commentaires pour améliorer notre site Web.




Notez que l'élément de formulaire doit avoir l'attribut [formGroup] = "feedbackForm" correspondant au modèle que nous venons de créer. En outre, chacun des éléments d'entrée doit avoir un attribut formControlName = "" correspondant à son contrôle de formulaire équivalent dans le modèle.

Pour styliser le formulaire, ajoutez-le à feedback.component.css .

 #options {
    affichage: flex;
    flex-direction: colonne;
}

#options label {
    marge: 0 0 0 .2rem;
}

.radioOption {
    marge: 0 0 .2rem 0;
}

.inputContainer {
    affichage: flex;
    flex-direction: colonne;
    marge: .5rem 0 .5rem 0;
}

label {
    marge: .5rem 0 .5rem 0;
}

.nameInput {
    affichage: flex;
    flex-direction: colonne;
}

bouton: désactivé {
    curseur: non autorisé;
    événements de pointeur: tous;
    couleur d'arrière-plan: slategrey;
}

#ratingLabel {
    affichage: flex;
    justify-content: espace entre;
    marge: .5rem 0 .5rem 0;
}

#ratingValue {
    poids de la police: plus audacieux;
    taille de la police: grande;
    bordure: .1rem solide gris clair;
    rembourrage: .4rem .6rem .1rem .6rem;
    marge: 0;
    alignement vertical: milieu;
    rayon de la frontière: .3rem;
}

.Erreur {
    couleur: rouge foncé;
    couleur d'arrière-plan: lightsalmon;
    bordure: .1rem cramoisi solide;
    rayon de la frontière: .3rem;
    rembourrage: .5rem;
    text-align: centre;
    marge: 0 0 1rem 0;
    affichage: flex;
    largeur: hériter;
}

.error p {
    marge: 0;
    flex-grow: 1;
}

textarea, entrée {
    marge: .1rem;
    famille de polices: Arial, Helvetica, sans-serif;
    rembourrage: 5px;
    taille de la police: moyenne;
    font-weight: plus léger;
}

.proche {
    curseur: par défaut;
}

.hidden {
    affichage: aucun;
}

@ écran multimédia et (largeur min: 480px) {
    #options {
        flex-direction: ligne;
        justify-content: espace autour;
    }

    .nameInput {
        flex-direction: ligne;
        justify-content: espace entre;
    }
}

Voici à quoi ressemblera le formulaire:

 Formulaire de commentaires
Capture d'écran du formulaire de commentaires ( Grand aperçu )

Ajout d'un formulaire HTML caché

Comme indiqué précédemment, nous besoin d'ajouter un formulaire HTML caché que les robots de construction Netlify Forms peuvent analyser. Les soumissions seront ensuite envoyées de notre formulaire réactif au formulaire HTML masqué. Le formulaire HTML est placé dans le fichier index.html .

Ce formulaire doit avoir le même nom que le formulaire réactif. De plus, il doit contenir trois autres attributs: netlify netlify-honeypot et hidden . Les bots recherchent tous les formulaires qui ont l'attribut netlify afin que Netlify puisse traiter les entrées de ceux-ci. L'attribut netlify-honeypot est ajouté pour empêcher l'affichage des captchas lors d'une soumission et pour une protection supplémentaire contre le spam.




 
  
  
 

Il est important de noter que puisque vous ne pouvez pas définir la valeur de file éléments d'entrée, vous ne pouvez pas télécharger un fichier en utilisant cette méthode.

Faire une demande de publication au formulaire caché

Pour envoyer une soumission du formulaire réactif au formulaire HTML, nous allons faire un demande de message contenant la soumission à index.html . L'opération sera effectuée dans la méthode onSubmit du FeedbackComponent .

Cependant, avant de pouvoir faire cela, nous devons créer deux choses: un Feedback ] et un NetlifyFormsService . Commençons par l'interface.

 touchez src / app / feedback / feedback.ts

Le contenu de ce fichier sera:

 interface d'exportation Commentaires {
   firstName: chaîne;
   lastName: chaîne;
   email: chaîne;
   type: chaîne;
   description: chaîne;
   classement: nombre;
}

Le NetlifyFormsService contiendra une méthode publique pour soumettre une entrée de rétroaction, une méthode privée pour soumettre une entrée générique et une autre privée pour gérer les erreurs. Vous pouvez ajouter d'autres méthodes publiques pour des formulaires supplémentaires.

Pour le générer, exécutez la commande suivante:

 ng g s netlify-forms / nelify-forms

La méthode submitEntry renvoie un Observable car Netlify envoie une page HTML avec une alerte de réussite une fois que nous publions des données sur le formulaire. Voici le service:

 import {Injectable} from '@ angular / core';
import {HttpClient, HttpErrorResponse, HttpParams} depuis '@ angular / common / http';
import {Commentaires} de '../feedback/feedback';
import {Observable, throwError} de 'rxjs';
import {catchError} depuis 'rxjs / operators';

@Injectable ({
  providedIn: 'racine'
})
classe d'exportation NetlifyFormsService {

  constructeur (http privé: HttpClient) {}

  submitFeedback (fbEntry: Feedback): Observable  {
    entrée const = new HttpParams ({fromObject: {
      'form-name': 'feedbackForm',
      ... fbEntrée,
      'évaluation': fbEntry.rating.toString (),
    }});

    return this.submitEntry (entrée);
  }

  private submitEntry (entrée: HttpParams): Observable  {
    renvoyer this.http.post (
      '/',
      entrée.toString (),
      {
        headers: {'Content-Type': 'application / x-www-form-urlencoded'},
        responseType: 'texte'
      }
    ) .pipe (catchError (this.handleError));
  }

  handleError privé (err: HttpErrorResponse) {
    laissez errMsg = '';

    if (err.error instanceof ErrorEvent) {
      errMsg = ʻUne erreur côté client s'est produite: $ {err.error.message} `;
    } autre {
      errMsg = ʻUne erreur côté serveur s'est produite. Code: $ {err.status}. Message: $ {err.message} `;
    }

    return throwError (errMsg);
  }
}

Nous vous enverrons le formulaire sous la forme HttpParams . Un en-tête du ContentType doit être inclus avec la valeur application / x-www-form-urlencoded . L'option responseType est spécifiée comme text car en cas de succès, la publication dans le formulaire masqué renverra une page HTML contenant un message de réussite générique de Netlify. Si vous n'incluez pas cette option, vous obtiendrez une erreur car la réponse sera analysée comme JSON . Voici une capture d'écran du message de réussite générique Netlify.

 forms / Message de réussite générique Netlify
Capture d'écran du message de réussite générique Netlify ( Grand aperçu )

Dans le FeedbackComponent ]nous importerons le NetlifyFormsService et le Router . Nous soumettrons l'entrée de formulaire à l'aide de la méthode NetlifyFormsService.submitEntry . Si la soumission est réussie, nous redirigerons vers la page de soumission réussie et réinitialiserons le formulaire. Nous utiliserons le service Router pour la redirection. En cas d'échec, la propriété errorMsg recevra le message d'erreur et sera affichée sur le formulaire.

 import {Router} from '@ angular / router';
import {NetlifyFormsService} depuis '../netlify-forms/netlify-forms.service';

Ensuite, injectez à la fois le NetlifyFormsService et le Router dans le constructeur.

 constructeur (
   privé fb: FormBuilder,
   routeur privé: routeur,
   netlifyForms privé: NetlifyFormsService
) {}

Enfin, appelez la méthode NetlifyFormsService.submitEntry dans FeedbackComponent.onSubmit .

 onSubmit () {
this.netlifyForms.submitFeedbackEntry (this.feedbackForm.value) .subscribe (
   () => {
     this.feedbackForm.reset ();
     this.router.navigateByUrl ('/ success');
   },
   err => {
     this.errorMsg = err;
   }
 );
}

Créer une page de soumission réussie

Lorsqu'un utilisateur termine une soumission, Netlify renvoie un message de réussite générique affiché dans la dernière capture d'écran de la section précédente. Cependant, vous pouvez créer un lien vers votre propre page de message de réussite personnalisée. Pour ce faire, ajoutez l'attribut action au formulaire HTML masqué. Sa valeur est le chemin relatif vers votre page de réussite personnalisée. Ce chemin doit commencer par / et être relatif à votre site racine.

La définition d'une page de réussite personnalisée ne semble toutefois pas fonctionner lors de l'utilisation d'un formulaire HTML masqué. Si la demande de publication dans le formulaire HTML masqué aboutit, elle renvoie le message de réussite Netlify générique sous forme de page HTML. Il ne redirige pas même lorsqu'un attribut action est spécifié. Nous allons donc à la place accéder à la page de message de réussite après une soumission à l’aide du service Router .

Tout d’abord, ajoutons du contenu au SuccessComponent que nous avons généré précédemment. Dans success.component.html ajoutez:

Merci!


Votre envoi de commentaires a été réussi.

Merci de partager vos commentaires avec nous!

Pour styliser la page, ajoutez ceci à success.component.css :

 p {
    marge: .2rem 0 0 0;
    text-align: centre;
}

Voici à quoi ressemble la page:

 Page de soumission réussie
Capture d'écran de la page de soumission réussie ( Grand aperçu )

Dans la classe FeedbackComponent nous déjà ajouté le service Router en tant qu'importation et l'injecté dans le constructeur. Dans sa méthode onSubmit une fois la requête réussie et le formulaire réinitialisé, nous accédons à la page de soumission réussie, / success . Pour ce faire, nous utilisons la méthode navigateByUrl du routeur.

Création de la page 404

La page 404 n'est peut-être pas nécessaire mais elle est agréable à avoir. Le contenu de page-non-trouvée.component.html serait:

Page introuvable!


Désolé! La page n'existe pas.

Pour le styliser, ajoutez ceci à page-not-found.component.css :

 p {
    text-align: centre;
}

Voici à quoi ressemblera la page 404.

 404 Page
Capture d'écran de la page 404 ( Grand aperçu )

Correction du routage avant le déploiement

Depuis que nous utilisons le service Router tout notre routage se fait sur le client. Si un lien vers une page de notre application est collé dans la barre d'adresse (lien profond) ou s'il y a une actualisation de la page, cette demande nous sera envoyée à notre serveur. Le serveur ne contient aucune de nos routes car elles ont été configurées dans le frontend, dans notre application. Nous recevrons un état 404 dans ces instances.

Pour résoudre ce problème, nous devons demander au serveur Netlify de rediriger toutes les requêtes vers notre page index.html . De cette façon, notre routeur angulaire peut les gérer. Si vous êtes intéressé, vous pouvez en savoir plus sur ce phénomène ici et ici .

Nous allons commencer par créer un fichier _redirects dans notre dossier src . Le fichier _redirects est un fichier texte brut qui spécifie les règles de redirection et de réécriture pour le site Netlify. Il doit résider dans le répertoire du site de publication du site ( dist / ). Nous le placerons dans le dossier src et le spécifierons en tant qu'élément dans le fichier angular.json . Lorsque l'application est compilée, elle sera placée dans dist / .

 touchez src / _redirects

Ce fichier contiendra la règle ci-dessous. Il indique que toutes les requêtes adressées au serveur doivent être redirigées vers index.html . Nous ajoutons également une option de code d'état HTTP à la fin pour indiquer que ces redirections doivent renvoyer un état 200 . Par défaut, un état 301 est renvoyé.

 / * /index.html 200

La dernière chose que nous devons faire est d'ajouter l'option ci-dessous dans nos angular.json und er projets> {your_project_name}> architect> options> assets . Incluez-le dans le tableau assets :

 {
  "glob": "_redirects",
  "entrée": "src",
  "production": "/"
}

Prévisualisez votre application localement

Avant de pouvoir déployer l'application de commentaires, il est préférable de la prévisualiser. Cela vous permet de vous assurer que votre site fonctionne comme vous l'aviez prévu. Vous pouvez découvrir des problèmes résultant du processus de construction, tels que des chemins brisés vers des ressources, entre autres. Tout d'abord, vous devrez créer votre application. Nous diffuserons ensuite la version compilée à l'aide d'un serveur. Nous utiliserons lite-server qui est un serveur léger de rechargement en direct pour les applications Web.

Remarque : Puisque l'application n'est pas encore déployée sur Netlify, vous obtiendrez une erreur 404 lorsque vous tenterez de faire la demande de publication. En effet, les formulaires Netlify ne fonctionnent que sur les applications déployées. Vous verrez une erreur sur le formulaire comme indiqué dans la capture d'écran ci-dessous, cependant, cela fonctionnera une fois que vous l'avez déployé.

 Erreur sur le formulaire de commentaires
Capture d'écran d'erreur sur le formulaire de commentaires ( Grand aperçu )
  1. Pour commencer, installez lite-server :
     npm install lite-server --save-dev
    
  2. Ensuite, dans le répertoire de l'espace de travail de votre application, créez votre application. Pour vous assurer que les compilations sont exécutées chaque fois que vos fichiers changent, passez le drapeau - watch . Une fois l'application compilée, les résultats sont écrits dans le répertoire de sortie dist / . Si vous utilisez un système de contrôle de version, assurez-vous de ne pas archiver le dossier dist car il est généré et sert uniquement à des fins de prévisualisation.
     ng build --watch
    
  3. Pour servir le site compilé, exécutez le lite-server sur le répertoire de sortie de la construction.
     lite-server --baseDir = "dist / "
    

Le site est maintenant desservi à localhost: 3000 . Vérifiez-le sur votre navigateur et assurez-vous qu'il fonctionne comme prévu avant de commencer son déploiement.

Déploiement

Il existe plusieurs façons de déployer votre projet Angular sur Netlify Edge. Nous en couvrirons trois ici:

  1. Using netlify-builder
  2. Using Git and the Netlify web UI
  3. Using the Netlify CLI tool .

1 . L'utilisation de netlify-builder

netlify-builder facilite le déploiement d'applications angulaires via la CLI angulaire. Pour utiliser cette méthode, votre application doit avoir été créée à l'aide de Angular CLI v8.3.0 ou version ultérieure.

  1. Dans l'onglet Sites de votre tableau de bord Netlify, créez un nouveau projet. Puisque nous n'utiliserons pas Git pour créer un projet, faites glisser n'importe quel dossier vide vers la zone de bordure pointillée marquée "Glissez et déposez votre dossier de site ici" . Cela créera automatiquement un projet avec un nom aléatoire. Vous pouvez modifier ce nom dans les paramètres de domaine du site ultérieurement si vous le souhaitez.
     Capture d'écran du tableau de bord pour créer un projet
    Capture d'écran du tableau de bord pour créer un projet ( Grand aperçu )

    Voici ce que vous devriez voir une fois votre projet créé.

     Capture d'écran d'une page de projet pour un exemple de projet
    Capture d'écran d'une page de projet pour un exemple de projet ( Grand aperçu )
  2. Avant de pouvoir effectuer un déploiement à l'aide de cette méthode, vous devez obtenir l'ID API du projet Netlify et un jeton d'accès personnel Netlify à partir de votre compte. Vous pouvez obtenir l'ID d'API du projet à partir des paramètres du site. Sous Paramètres du site> Général> Détails du site> Informations sur le site vous trouverez l'ID API de votre projet.
     Capture d'écran montrant l'emplacement du bouton Paramètres du site
    Capture d'écran montrant l'emplacement du bouton Paramètres du site ( Grand aperçu )
     Capture d'écran montrant où se trouve l'ID API du site dans ses paramètres
    Capture d'écran montrant où se trouve l'ID API du site dans ses paramètres ( Grand aperçu )

    Vous pouvez obtenez un jeton d'accès personnel dans vos paramètres utilisateur. Dans Paramètres utilisateur> Applications> Jetons d'accès personnels cliquez sur le bouton Nouveau jeton d'accès . Lorsque vous y êtes invité, entrez la description de votre token, puis cliquez sur le bouton Generate Token . Copiez votre jeton. Par souci de persistance, vous pouvez stocker ces valeurs dans un fichier .env au sein de votre projet, mais ne pas archiver ce fichier si vous utilisez un système de contrôle de version.

     Capture d'écran montrant où se trouve le bouton Paramètres utilisateur
    Capture d'écran montrant où se trouve le bouton Paramètres utilisateur ( Grand aperçu )
     Capture d'écran montrant où créer un jeton d'accès personnel
    Capture d'écran montrant où créer un jeton d'accès personnel ( Grand aperçu )
     Capture d'écran montrant où entrer la description du jeton
    Capture d'écran montrant où entrer la description du jeton ( Grand aperçu )
     Capture d'écran montrant la valeur du jeton
    Capture d'écran montrant la valeur du jeton ( Grand aperçu )
  3. Ensuite, ajoutez netlify-builder à votre projet en utilisant ng add .
     ng add @ netlify-builder /déployer
    

    Une fois l'installation terminée, vous serez invité à ajouter l'ID API et le jeton d'accès personnel.

     Capture d'écran montrant les invites d'ajout du générateur netlify
    Capture d'écran montrant les invites d'ajout du générateur netlify ( Grand aperçu )

    Il est facultatif de les ajouter ici. Vous pouvez ignorer cette invite car elle sera ajoutée à votre fichier angular.json qui est généralement archivé si vous utilisez un système de contrôle de version. Il n’est pas sûr de stocker ce type d’informations sensibles sur des dépôts de code. Si vous ne consignez pas ce fichier, vous pouvez simplement saisir votre ID API et votre jeton d'accès personnel. L'entrée ci-dessous sera modifiée dans votre fichier angular.json sous les paramètres architect .

     "deploy": {
        "builder": "@ netlify-builder / deploy: deploy",
        "options": {
        "outputPath": "dist / ",
        "netlifyToken": "",
        "ID du site": ""
        }
    }
    
  4. Il ne vous reste plus qu'à déployer votre application en exécutant:
     NETLIFY_TOKEN =  NETLIFY_API_ID =  ng deploy
    

    Vous pouvez également le mettre dans un script et l'exécuter lorsque vous devez déployer votre application.

     # Pour créer le script
    touch deploy.sh && echo "NETLIFY_TOKEN =  NETLIFY_API_ID =  ng deploy" >> deploy.sh && chmod + x deploy.sh
    
    # Déployer
    ./deploy.sh
    

    Voici la sortie que vous devriez voir une fois que vous exécutez cette commande:

     Capture d'écran montrant les résultats du déploiement
    Capture d'écran montrant les résultats du déploiement ( Grand aperçu ) [19659179] 2. Utilisation de Git et de l'interface utilisateur Web de Netlify

    Si le code de votre application Angular est hébergé sur Github, Bitbucket ou Gitlab, vous pouvez héberger le projet à l'aide de l'interface utilisateur Web de Netlify.

    1. À partir de l'onglet Sites sur votre tableau de bord Netlify, cliquez sur le bouton « Nouveau site de Git».
       Capture d'écran montrant le bouton pour créer un nouveau site
      Capture d'écran montrant le bouton pour créer un nouveau site ( Grand aperçu )

    2. Connectez-vous à un service de référentiel de code. Choisissez le service sur lequel votre code d'application est hébergé. Vous serez invité à autoriser Netlify à afficher vos référentiels. Cela différera d'un service à l'autre.
       Capture d'écran montrant les options de connexion à un fournisseur Git
      Capture d'écran montrant les options de connexion à un fournisseur Git ( Grand aperçu )
    3. Choisissez votre référentiel de code.
       Capture d'écran montrant la liste des dépôts disponibles
      Capture d'écran montrant la liste des dépôts disponibles ( Grand aperçu )
    4. Ensuite, vous spécifierez les déploiements et les paramètres de construction. Dans ce cas, sélectionnez la branche à partir de laquelle vous souhaitez effectuer le déploiement, spécifiez la commande build comme ng deploy --prod et le répertoire de publication comme dist / .
       Capture d'écran montrant Paramètres de construction et de déploiement
      Capture d'écran montrant les paramètres de construction et de déploiement ( Grand aperçu )
    5. Cliquez sur le bouton Déployer le site et vous avez terminé.

    3. Utilisation de l'outil CLI Netlify

    1. Pour commencer, installez l'outil CLI Netlify comme suit:
       npm install netlify-cli -g
      

      Si l'installation réussit, vous devriez voir ces résultats sur votre terminal:

       Capture d'écran montrant les résultats d'une installation réussie de Netlify CLI
      Capture d'écran montrant les résultats d'une installation réussie de Netlify CLI ( Grand aperçu ])
    2. Ensuite, connectez-vous à Netlify en exécutant:
       netlify login
      

      Lorsque vous exécutez cette commande, elle accède à une fenêtre de navigateur où vous serez invité à autoriser la CLI Netlify. Cliquez sur le bouton Autoriser . Vous pouvez ensuite fermer l'onglet une fois l'autorisation accordée.

       Capture d'écran montrant une boîte de dialogue demandant l'autorisation de Netlify CLI
      Capture d'écran montrant une boîte de dialogue demandant l'autorisation de Netlify CLI ( Grand aperçu )
       Capture d'écran montrant la boîte de dialogue d'autorisation accordée
      Capture d'écran montrant la boîte de dialogue d'autorisation accordée ( Grand aperçu )
    3. Pour créer un nouveau projet Netlify, exécutez ce qui suit sur votre terminal:
       netlify init
      

      Vous serez invité à connecter votre application Angular à un projet Netlify existant ou à en créer un nouveau. Choisissez l'option Créer et configurer un nouveau site .

       Capture d'écran montrant les options de création ou de connexion d'un projet
      Capture d'écran montrant les options de création ou de connexion d'un projet ( Grand aperçu )

      Ensuite, sélectionnez votre équipe et un nom pour le site que vous souhaitez déployer. Une fois le projet créé, l'outil CLI listera les détails du site pour votre projet.

       Capture d'écran montrant les détails du nouveau site
      Capture d'écran montrant les détails du nouveau site ( Grand aperçu )

      Après quoi, l'outil CLI vous invite à connecter votre compte Netlify à un fournisseur d'hébergement Git pour configurer les webhooks et déployer les clés. Vous ne pouvez pas vous désabonner. Pick an option to login in then authorize Netlify.

      Screenshot showing prompt to connect to a Git provider
      Screenshot showing prompt to connect to a Git provider (Large preview)

      Next, you’ll be asked to enter a build command. Use:

      ng build --prod
      

      Afterward, you’ll be asked to provide a directory to deploy. Enter dist/ with your app’s name.

      Screenshot showing a build-settings prompt
      Screenshot showing a build-settings prompt (Large preview)

      At the end of that, the command will complete and display this output.

      Screenshot showing results of a successful project initialization
      Screenshot showing results of a successful project initialization (Large preview)
    4. To deploy the app, run:
      netlify deploy --prod
      

      Using the --prod flag ensures that the build is deployed to production. If you omit this flag, the netlify deploy command will deploy your build to a unique draft URL that is used for testing and previewing. Once the deployment is complete, you should see this output:

      Screenshot showing results of a successful deployment
      Screenshot showing results of a successful deployment (Large preview)

    Viewing Form Submissions

    Form submissions can be viewed on the Netlify dashboard under the Forms tab of your site. You can find it at app.netlify.com/sites//forms. On this page, all your active forms will be listed. The name attribute that you put down in the hidden form element is the name of the form on the dashboard.

    Once you select a form, all the submissions for that form will be listed. You can choose to download all the entries as a CSV file, mark them as spam, or delete them.

    Active forms list
    Screenshot of active forms listed on the site dashboard (Large preview)
    Form Entries
    Screenshot of forms entries listed on the form dashboard (Large preview)

    Conclusion

    Netlify Forms allow you to collect form submission from your app without having to create or configure a backend to do it. This can be useful especially in apps that only need to collect a limited amount of data like contact information, customer feedback, event sign-ups, and so on.

    Pairing Angular reactive forms with Netlify forms allow you to structure your data model. Angular reactive forms have the added benefit of having their data model and form elements being in sync with each other. They do not rely on UI rendering.

    Although Netlify Forms only work when deployed on Netlify Edge, the hosting platform is pretty robust, provides useful features like A/B testing, and automates app builds and deployments.

    You can continue reading more about using Netlify with your forms over here.

    Smashing Editorial(ra, il)




Source link