J'ai une application où un client communique avec un serveur côté REST. Ceci est écrit en .Net, mais je suppose que la question devrait être indépendante de cela. Maintenant, j'ai des services tels que GetAllCustomers
et GetCustomerById
. Un client a des références à une liste potentiellement importante de commande, donc je ne veux pas passer les références des clients du service GetAllCustomers
. Je veux fondamentalement retourner les clients avec leurs données simples, mais pas de références. Ensuite, je ferai un autre appel de service GetCustomerById
pour récupérer les données complètes lorsqu'un client est sélectionné dans le client.Meilleures pratiques pour ne pas passer des références d'objet sur les appels de service
La question est maintenant - est-il une façon recommandée de gérer cela? Utilisation de Lazy Loading Je peux simplement passer l'objet avant que les références ne soient chargées - puis m'assurer que ce n'est pas utilisé du côté client. Mais est-ce laid? (Aussi - j'ai eu des problèmes pour communiquer des objets chargés paresseux avec REST, mais cela a fonctionné avec SOAP - mais c'est une question différente ..) Je suppose que je pourrais récupérer toutes les données de la base de données et supprimer les références avant de les retourner. ça sonne bien sûr. Aussi, je reçois encore une charge inutile sur ma base de données ..
Donc; Y a-t-il une bonne solution à cela?
Actuellement, je suis en utilisant la valeur par défaut, ce qui est XML. Ne semble pas fonctionner, mais ignorer la liste des commandes client devrait résoudre ce problème? Je ne fais pas de sérialisation manuellement du côté serveur. Ai-je besoin de le faire, ou puis-je le réparer avec un attribut ou quelque chose? Merci btw – stiank81
@ stiank81 mis à jour ma réponse :) – mcabral
Thx pour la mise à jour, mais je suppose que cela omettra le membre toujours. Le problème est que je veux omettre les références quand je fais le GetAll, mais j'ai besoin de l'inclure quand je récupère l'objet directement - en utilisant GetById etc. Donc ce dont j'ai besoin est un moyen de spécifier sur le service qu'il doit ignorer les références qui ne sont pas chargés - ou quelque chose comme ça .. Connaissez-vous une solution à cela? – stiank81