Validation de formulaires Android et intégration Vue-SpringBoot

Vaildation des entrées utilisateur sous Android

L'implémentation de contrôles de saisie empêche les données invalides lors de l'inscription. Cette approche réduit les erreurs côté serveur :

btnEnregistrement.setOnClickListener(v -> {
    if (champPseudo.getText().toString().isEmpty()) {
        affichageErreur.setText("Le pseudo est requis");
        return;
    }
    if (champPseudo.getText().length() > LIMITE_CARACTERES) {
        affichageErreur.setText("Pseudo trop long (max " + LIMITE_CARACTERES + ")");
        return;
    }
    if (!champMdp.getText().toString().equals(champMdpConfirmation.getText().toString())) {
        affichageErreur.setText("Les mots de passe diffèrent");
        return;
    }
    verifierDonnees();
});

Communication entre Vue.js et Spring Boot

L'utilisation d'Axios permet des requêtes HTTP asynchrones vers l'API Spring Boot :

<script>
const nouveauService = { nom: 'Service Technique' };

axios.post('http://localhost:8080/services', nouveauService)
  .then(reponse => console.log(reponse.data))
  .catch(erreur => console.error('Erreur API', erreur));
</script>

Configuration Axios avancée

Création d'une instance Axios avec intercepteurs :

import axios from 'axios';

const clientHttp = axios.create({ baseURL: '/api' });

clientHttp.interceptors.response.use(
  reponse => reponse.data,
  erreur => {
    console.error('Échec requête');
    return Promise.reject(erreur);
  }
);

export default clientHttp;

Service d'enrgeistrement utilisateur

Abstraction des appels API danss un service dédié :

import clientHttp from '@/utils/clientHttp';

export const inscriptionUtilisateur = (infos) => {
  const parametres = new URLSearchParams();
  Object.keys(infos).forEach(cle => {
    parametres.append(cle, infos[cle]);
  });
  return clientHttp.post('/utilisateurs/inscription', parametres);
};

Composant d'inscription Vue.js

Implémentation d'un formulaire avec validation en temps réel :

<script setup>
import { ref } from 'vue';
import { inscriptionUtilisateur } from '@/services/utilisateurService';

const donneesInscription = ref({ pseudo: '', mdp: '' });
const modeInscription = ref(true);

const verifierMdp = (regle, valeur, callback) => {
  if (valeur !== donneesInscription.value.mdp) {
    callback(new Error('Confirmation incorrecte'));
  } else {
    callback();
  }
};

const soumettreInscription = async () => {
  const resultat = await inscriptionUtilisateur(donneesInscription.value);
  alert(resultat.code === 0 ? 'Succès' : 'Échec');
};
</script>

<template>
  <el-form v-if="modeInscription" :model="donneesInscription">
    <el-form-item prop="pseudo">
      <el-input placeholder="Identifiant" v-model="donneesInscription.pseudo" />
    </el-form-item>
    <el-form-item>
      <el-button @click="soumettreInscription">S'inscrire</el-button>
    </el-form-item>
  </el-form>
</template>

Étiquettes: Android vuejs SpringBoot axios ValidationFormulaire

Publié le 4 juillet à 22h49