L'équipe A crée WebServiceA. Il utilisera le type Personne. Lorsque la personne est enregistrée par appel dans WebServiceA, l'autre système doit également être averti (par appel à WebServiceB créé par l'équipe B en passant la personne enregistrée).Comment partager des types entre services Web
Ensuite, lorsque la personne est éditée dans le système B, les modifications doivent être migrées vers le système A (par appel à WebServiceA en passant la personne modifiée).
La question est de savoir comment rendre les deux WebServices utilisent le même type? Nous pourrions envoyer du XML en tant que chaînes, puis le sérialiser/désérialiser aux objets de chaque côté de WebService afin que nous n'ayons pas à travailler avec xml, mais je suis curieux de savoir si c'est plus facile.
Je voudrais avoir ceci:
WebServiceA
Webmethod - RegisterPerson(Person person)
calls WebServiceB.PersonRegistered(person)
WebMethod - PersonModified(Person person)
WebSericeB
WebMethod - PersonRegistered(Person person)
WebMethod - ModifyPerson(Person person)
calls WebServiceA.PersonModified(person)
au lieu de cette
WebServiceA
Webmethod - RegisterPerson(Person person)
calls WebServiceB.PersonRegistered(person.SerializeToXml())
WebMethod - PersonModified(string person) - deserialize to WebServiceA.Person
WebSericeB
WebMethod - PersonRegistered(string person) - deserialize to WebServiceB.Person
WebMethod - ModifyPerson(Person person)
calls WebServiceA.PersonModified(person.SerializeToXml())
Nous utilisons ASP.NET WebService dans l'équipe A et l'équipe B en utilisant Java. Cela changerait-il quelque chose si les deux équipes utilisaient .NET?
Et si nous sommes en utilisant les services web et non les services wcf? Existe-t-il un moyen de partager des objets entre deux services Web écrits en .NET? Je pense que vous avez fait une petite erreur dans votre réponse. Je passe des objets dans le premier exemple pas dans la seconde. En deuxième je passe des cordes. –
@Peri Vous pouvez toujours créer une classe proxy (en utilisant une "référence web"). Voir http://msdn.microsoft.com/en-us/library/d9w023sx(v=vs.90).aspx. Je crois que WCF est la méthode recommandée pour les services web (par la suite j'ai corrigé mes références à vos exemples). – Ulises
Oui, je sais que je peux créer une classe proxy :) Mais lorsque vous ajoutez une référence Web alors que WebServiceB référence la même bibliothèque de classes que les types WebServiceA de cette bibliothèque de classes sont régénérés avec proxy et sont dans un espace de noms différent. Ainsi, si WebServiceB a la méthode PersonRegistered (personne ClassLibrary.Person) dans WebServiceA, elle sera visible en tant que PersonRegistered (personne WebService2.Person). –