IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Comment valider les paramètres d'un service Rest


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut Comment valider les paramètres d'un service Rest
    Bonjour,

    Je developpe un service restful avec Symfony, et je cherche
    quelle est la bonne manière de réaliser la validation des paramètres.

    Est-ce que je peux créer un formulaire avec des validateurs mais sans widgets, et vérifier la validité des paramètre d'une requête Post en utilisant la méthode isValid ?

    Est-ce que ça un sens de faire comme ça car je trouve un peu génant de définir un formulaire sans jamais en faire le rendu, il ne servirait qu'à valider les données

    Merci d'avance

    Note : je débute avec Symfony

  2. #2
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 360
    Par défaut
    Bonsoir,

    Pourrais tu détailler un peu plus ton projet ?

    Pourquoi un webservice et pourquoi avoir besoin de valider des paramètres utilisateurs ?

    Pour une recherche ?

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Le but c'est de pouvoir communiquer avec un serveur permettant d'envoyer des sms mais qui ne possède pas de base d'interface style web service, je vais donc en rajouter une en suivant les principes d'une architecture REST,

    J'ai donc en entrée 2 paramètres :

    • le numero
    • le texte




    Je veux donc dans une première version valider que le numéro est bien un numéro de téléphone valide, et que le texte ne dépasse pas 160 caractères

    Le routing est ok, la sauvegarde en base de donnée aussi, il ne me reste qu'à valider les données.

    J'ai donc quelques chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
      public function executePost(sfWebRequest $request)
      {
     
          //get the parameter
     
          $message = $request->getParameter('message');
          $to      = $request->getParameter('to');
     
     
          //validate ???
     
          //create the object
          $smsToSend = new Outbox();
          $smsToSend->setDestinationnumber($to);
          $smsToSend->setTextdecoded($message);
     
          //save
          $smsToSend->save();
     
     
      }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    api :
      url: /api/phone/:id/messages.:sf_format
      class: sfRequestRoute
      param:
        module: api
        action: post
      requirements:
        sf_method: [post]
        sf_format: (json)
    La ou je suis bloqué c'est où rajouter les règles de validation en respectant les possiblités offertes par le framework en sachant que dans le chapitre
    "http://www.symfony-project.org/jobeet/1_4/Doctrine/en/10" j'ai vu des choses comme les validateurs (sfValidatorString,..) mais appliqué à un formulaire et je ne vois comment appliquer ce principe à ma problématique.


    Donc si quelqu'un a déja développé un service Rest "en écriture" toutes remarques est la bienvenue sur l'approche suivie pour la validation des données en entrée.

    Merci

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je n'ai jamais testé, mais...

    Si on crée un formulaire avec des widget et pas de validator pour les données correspondante, le formulaire ne peut être validé, à cause des validator manquant.

    Donc, si on crée un form a partir d'un sfFormSymfony de base qui n'ai que des validateur, on devrait pouvoir valider les paramètres de retours. Après tous, au niveau du sfForm, les mécanismes de vérification des valeurs et de génération du formulaire sont indépendants. Je pense que cela à de bonne chance de marcher.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 9
    Par défaut
    Finalement, ce qui me parait le plus logique c'est de rajouter une methode dans la classe du modèle qui valide les données, mais du coup il faut coder ses validateurs à la main ou utiliser une librairie tierce genre ZF avec Zend_Validate.

    Mais j'aimerai bien le faire en utilisant les validateurs symfony mais apparament ils ne sont adaptés que pour travailler avec des formulaires ...

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    A priori, la solution que je t'ai proposé devrait fonctionner.

    Les widgets me semblent difficiles à utiliser hors du sfForm et de ces enfants. En effet, le tableau sfWidgetFormShema fait appel a des données présentes dans le sfForm.

    C'est très lié.

Discussions similaires

  1. Properties : comment spécifier les paramètres d'une property ?
    Par guilhemr dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 21/04/2008, 13h57
  2. Réponses: 2
    Dernier message: 20/10/2006, 08h23
  3. [Excel]Comment détecter les paramètres régionaux
    Par Mut dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/09/2006, 11h01
  4. Réponses: 11
    Dernier message: 06/09/2006, 12h48
  5. [firebird] comment valider les modifications ?
    Par kase74 dans le forum Bases de données
    Réponses: 2
    Dernier message: 24/08/2004, 01h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo