2010-10-01 3 views
4

Je construis un service web RESTful, et je veux lui permettre de participer à des transactions distribuées.Comment implémenter la validation en deux phases dans un service .Net REST WCF?

Un exemple de scénario serait que mon service REST puisse enregistrer un fichier sur un serveur quelque part, et en même temps l'appelant marque ce fichier comme sauvegardé dans sa base de données. Toutefois, si le serveur de fichiers est saturé ou si l'appel de sa base de données échoue, l'autre action ne doit pas être validée.

Que puis-je faire pour garder mon côté du marché? J'aimerais trouver une solution qui fonctionne à la fois pour les clients .Net et Java. Je sais que c'est un problème épineux, je me demandais si quelqu'un avait des conseils ou des idées? Merci

Répondre

4

Si je vous comprends bien, vous parlez d'avoir plusieurs demandes à différents points de terminaison REST participent à une transaction distribuée.

Dans ce cas, vous devriez jeter un oeil à this related question, où the answer dit essentiellement que transactions distribuées est un scénario qui va sur le plan conceptuel contre les principes de REST.

Cependant, vous pouvez implémenter une solution en utilisant le workaround explained in this answer.
Vous pouvez également consulter RETRO, qui est une approche expérimentale pour implémenter des transactions RESTful centrées autour de l'idée de traiter chaque élément d'une transaction ACID comme une ressource.

Ressources connexes:

Questions connexes