2010-07-19 4 views
0

Existe-t-il un moyen d'exposer un service Web, je peux marquer certaines propriétés dans l'objet comme immuable ou en lecture seule?Propriétés en lecture seule dans les services Web

Merci

+0

Mohit Faites-vous référence aux données récupérées ou aux données envoyées? –

Répondre

0

Il n'y a rien de spécial des services Web à cet égard. Si votre objet de données est immuable côté serveur et qu'il est désérialisé en tant que classe immuable côté client, personne ne pourra modifier les propriétés.

Quelle est votre motivation pour cela, cependant? Rendre quelque chose immuable du point de vue du client est principalement pour leur commodité plutôt que toute sorte de sécurité/correction de l'implémentation de votre serveur. S'ils apportent des modifications à leur version d'un objet, cela n'affectera pas le vôtre car ils sont distincts. Ainsi, si votre préoccupation est que vous voulez exposer par ex. les paramètres de configuration du serveur, sans qu'ils puissent les changer, alors allez-y simplement - le processus de sérialisation/désérialisation signifie qu'ils obtiennent un copie de votre objet, pas une référence à l'objet lui-même. (Notez que si vous utilisez le partage d'objets à distance tel que RMI ou Terracotta, le paragraphe ci-dessus n'est peut-être pas vrai, mais ce n'est pas vraiment un service Web au sens classique du terme).

+0

Je cherchais un moyen de ne pas fournir aux consommateurs de setters pour peu de propriétés. Je veux permettre au consommateur d'éditer l'objet, mais certaines propriétés ne devraient pas être éditées. sur le serveur je peux avoir mes traducteurs font le travail, comme vous l'avez également mentionné. mais y a-t-il un autre moyen? – Mohit

0

Je pense que ce que vous cherchez n'est pas de désérialiser tous les membres de vos classes. Si vous les annotez correctement, certains membres ne seront pas rangés

Questions connexes