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

Services Web Discussion :

Web service totalement generique


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 19
    Par défaut Web service totalement generique
    Bonjour

    Je réalise régulièrement un WebService qui effectue une requête dans une BDD et retourne son contenu.

    J'utilise un type complexe pour la requête et un autre type complexe pour le résultat. Les attribut sont les nom des colonnes de la base.

    En gros sur une base personne ça donne ç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 ResultatPersonne getData(RequetePersonne req){
        ...
    }
     
    public class ResultatPersonne{
     
       public int nbResultat;
     
       //Champs propre à la base
       public string[] nom;
     
       public string[] prenom;
    }
     
    public class RequetePersonne{
     
       //Champs propre à la base
       public string[] nom;
     
       public string[] prenom;
    }
    J’ai un peu alléger les classes. Mais en gros je réécris toujours les mêmes types. Et je souhaiterai rendre le webservice générique en lui donnant une liste de colonne. J’éviterai de réécrire des classes requêtes et réponses.

    Je ne peux pas utiliser de Dictionnaire pour l'interface client car le but est que le client puisse accéder aux structures proprement. Il ne dois pas avoir à remplir des dictionnaires ni a les lires (pas super propre en plus).

    Ma question est donc: En jouant avec le Binding puis-je avoir une interface dans le WSDL différente de la structure derrière?

    En gros le Webservice utiliserait des dicos mais pour le client ce serait des structures complexes. On générerai une classe en utilisant la réflexivité.

    Merci d'avance.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Salut Farçous,

    Si je comprends bien, tu veux un service web générique qui te permettrait d'éviter de réécrire chaque fois une classe "ResultatPersonne{...}" et une classe requetePersonne{...}, mais ton client veux connaître la structure de ton Service web, afin de s'agit d'un service web Personne ou adresse par exemple.

    Ma question, ne serait-il pas plus de simple de créer une méthode qui retourne la liste de colonnes avec le type de données?

    Cédric

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 19
    Par défaut
    Oui, mon problème est devoir créer pour chaque client qui souhaite consulter une de nos bases, une classe correspond grosso modo à la table.

    Donc pour des voitures, une classe voiture qui contient les colonnes de la table.
    Pour une classe Personne, nom et prenom.

    Et à chaque fois je fais un truc qui wrappe vers une List<Type Personne ou Voiture>.

    C'est pratique et auto-descriptif pour le client. Mais il me faut réécrire à chaque fois.

    Ta solution est pratique car retournerai une structure d'objet et le client devrait la caster vers les types voulus en fonction des info fournit sur la structure.

    Mais dans ce cas c'est le client qui doit écrire le wrapper vers des objet qu'il peut manipuler (à savoir des voiture, des personnes ou des adresses).

    Malheureusement les clients préfèrent le système tel quel. Donc il faut leur à chaque fois, le même système avec presque rien qui change.

    L'idée était de générer automatiquement le wrapper via réflexivité.

    Au pire, je peut faire un petit outil qui générerai le code source du wrapper.
    Je dois écrire une dizaine de ces choses par an au pire. Pas sur que ça vaille le coup.

    Merci de ta réponse.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 351
    Par défaut
    Si c'est toi, qui doit générer le wrapper, cela sera plus facile de créer un peiti outil qui génère automatiquement des classes en fonction de tes tables. Mâme si ce n'est qu'une dizaine de classe par année, cela te permettra de gagner du temps et évite de faire des choses répétitives! A toi de voir!

    Bon développement!

    Cédric

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 19
    Par défaut
    Je n’aime pas trop l'idée de générer du code source d'où ma question d'origine visant à éviter ce genre de chose.

    Mais le mieux, oui, est décrire un générateur, je mangerai peut-être le temps pour écrire mes 10 classes en une fois mais au moins j'aurai un outil.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AXIS][WEB SERVICES] .xsd
    Par cosmos38240 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 2
    Dernier message: 16/07/2004, 15h55
  2. [web service] pb interoperabilité?
    Par david42 dans le forum Services Web
    Réponses: 3
    Dernier message: 02/03/2004, 14h01
  3. [WebService]Fichier Java et WSDL associé pour Web Services
    Par P4_le_requin_breton dans le forum Services Web
    Réponses: 9
    Dernier message: 23/02/2004, 12h55
  4. [JBuilder][Web Services] à partir de quelle version?
    Par sicard_51 dans le forum JBuilder
    Réponses: 2
    Dernier message: 25/08/2003, 12h54
  5. [Kylix] problème web service kylix
    Par RezzA dans le forum EDI
    Réponses: 3
    Dernier message: 11/02/2003, 14h50

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