Quelle est la meilleure approche des services web - premier contrat ou contrat durer?

StackOverflow https://stackoverflow.com/questions/763827

  •  11-09-2019
  •  | 
  •  

Question

Quelle est la meilleure approche pour le développement de services Web; Premier contrat ou contrat durer?
Quels sont les avantages et les inconvénients de chacun?

Qui avez-vous une expérience avec?

EDIT Cette question concerne la mise en œuvre d'un service Web (lire: SOAP) La question est de savoir si les classes de mise en œuvre doivent être codées d'abord et le schéma WSDL et XSD généré à partir de ce (contrat dernier) ou le WSDL et le schéma XSD écrit d'abord et les classes de mise en œuvre générée (premier contrat)

Était-ce utile?

La solution

Contrat-première est la « meilleure pratique ». Généralement acceptée

Il vous permet d'être très clair avec le producteur et le consommateur du service exactement ce qui est nécessaire et ce qui est attendu. Cela devient particulièrement important lorsque vous commencez à essayer de convertir les types Java -> types xml. Vous êtes également en mesure de réutiliser les schémas à travers différents services Web.

Autres conseils

Je l'ai utilisé les deux approches. Ma suggestion est d'utiliser Contrat premier schéma, mais premier code WSDL.

L'écriture d'un fichier WSDL a beaucoup de nuances étranges comme fixations, ports et autres. Je préférerais que cela soit fait par des outils plutôt que de la main. Il existe des outils pour aider ce faire, mais aucun d'entre eux sont plus simples que

@WebService
public ...

vous pouvez à tout le moins vérifier votre déploiement.

Pour le schéma, je suggère contrat premier parce que le langage de schéma XML est beaucoup plus riche que ce que vous pouvez décrire en Java. Un exemple que je donne habituellement montre que le schéma XML peut limiter la taille d'une chaîne et d'appliquer un modèle d'expression régulière. Faire cela en Java et annotations ressemble un peu messier.

Un autre avantage de faire le schéma comme premier contrat est la présence d'outils pour convertir votre fichier de schéma dans la documentation HTML.

L'outil XJC peut générer les fichiers de classe nécessaires. Cependant, je ne recommanderais le faire au début.

En fin de compte, vous devez prendre le fichier WSDL généré et travailler avec ce lieu. De cette façon, vous pouvez utiliser wsimport et vérifier que la chose à partir du schéma WSDL est valide.

Vous pouvez déployer le fichier WSDL en utilisant l'attribut wsdlLocation dans votre implémentation de @WebService et le serveur d'application corrigera les données de liaison pour vous lorsque les utilisateurs demandent le WSDL à partir du serveur, mais vous conserver encore vos annotations. Dans le cas contraire vos annotations ne seront pas apparaître sur les fichiers WSDL demandés.

Je soupçonne que la réponse est un « ça dépend ».

Le problème est que si vous construisez et publier votre contrat, vous êtes lié par elle. Cela rend plus difficile de changer. pas impossible, mais plus difficile.

D'autre part, il est plus rapide de jouer avec le contrat que avec le code, si vous êtes à l'aise avec les schèmes etc Donc, vous pouvez faire des changements progressifs dans le contrat.

ne sont pas là aussi des outils qui généreront un squelette de code à partir du WSDL? Je suis presque il y a. Si oui, vous pourriez bien faire schèmes l'élément « code » et générer du code de celui-ci.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top