web-dev-qa-db-fra.com

Relation entre les sujets de pubsubs et les sujets pubsub

Je concevons un système qui convient parfaitement à une architecture reposante. Les utilisateurs peuvent naviguer dans une hiérarchie de ressources à partir d'un nœud racine, chaque ressource de ressources vers d'autres ressources, des ressources ont URI, etc. À bien des égards, cela est très similaire à 99% des applications Web CRUD.

Où les choses sont un peu différentes, c'est que je veux intégrer un pub/sous-modèle dans cette architecture. Ainsi, lorsqu'une ressource est modifiée, je souhaite que l'architecture prend en charge les mises à jour éteintes des abonnés pertinents.

Beaucoup de mes questions concernent la manière dont le pub/sous 'thumbics' se rapportent à des "URIS" reposantes. Vraiment, je veux simplement utiliser l'URI comme sujet. Je me sens comme dans de nombreux scénarios qui a parfaitement du sens - mais j'ai un niggle de doute à ce sujet et je ne trouve aucune architecture dans la nature faisant cela.

Lorsque cela devient étrange, c'est que certaines URI sont des requêtes ne correspondent pas facilement à ce modèle. C'est beaucoup trop complexe pour soutenir les requêtes de pub/sous dynamique et je n'ai aucune intention ni besoin, mais le fait que ce concept est largement mis en œuvre dans des systèmes reposants le fait sentir qu'il y a une inadéquation ou une limitation de l'utilisation d'URI en tant que sujets de pub/sous système.

Ma résolution Pour le moment, c'est que "Canonical" Uris (c'est-à-dire ceux qui font référence à une seule ressource à un endroit canonique) sont bien, voire une bonne chose, à utiliser comme sujet. Mais ma confiance est faible en raison de ne pas voir d'autres personnes de faire cela.

Toute pensée appréciée.

6
Schneider

Un abonnement à un sujet peut être effectué avec un POST à un URI de sujet. Cela devrait générer une file d'attente renvoyée dans la réponse pour l'abonné invididual.

En utilisant POST sur cette file d'attente URI doit créer une nouvelle URI contenant un flux d'éléments (URI aux messages) qui doivent être livrés à l'utilisateur. Après avoir eu lieu sur cet état d'alimentation actuel, vous Peut obtenir des éléments sélectionnés que le flux fait référence. Si les éléments sont partagés (c'est probablement ce que la plupart des gens veulent que la plupart des gens veulent), vous ne pouvez pas simplement les supprimer. Vous avez besoin POST pour les marquer.

Un nouveau POST sur l'URI de la file d'attente créera une alimentation avec des articles en file d'attente actuels (éventuellement ceux qui n'ont pas non plus été marqués livrés). Mais c'est votre choix comment vous voulez gérer le messages.

Bien sûr, l'abonnement peut être supprimé lorsque vous souhaitez vous désabonner et il est souhaitable que certaines URI (alimente et éventuellement des éléments) disposent de restrictions d'expiration pour que le système soit propre.

1
Martin Sugioarto