Je viens de découvrir feathersjs et j'aime vraiment l'idée qui la sous-tend, même si je ne sais toujours pas comment la philosophie basée sur les services peut convenir à des applications qui sont plus complexes qu'une simple interface utilisateur CRUD. Pour mieux comprendre, j'ai inventé un exemple: Considérons une application où vous pouvez créer et partager des enquêtes. Vous pouvez facilement créer un sondage service pour créer, mettre à jour et obtenir les propriétés d'un sondage (questions et réponses). Mais comment traiter les aspects suivants:Quelle est la manière de gérer les actions non liées aux données et les objets enfants?
1) Il existe actions, c'est-à-dire des invocations de service qui n'affectent pas du tout les données. Une action pourrait être d'envoyer un e-mail de rappel à tous les utilisateurs invités qui n'ont pas encore participé à une enquête. Si je n'utilisais pas de plumes, je créerais un point de terminaison explicite dédié pour cela, mais comment ces actions s'inscrivent-elles dans la philosophie des plumes? Devrait-on créer un service (implémentant seulement un verbe HTTP) par action? Cela va devenir confus bientôt. Utilisez hooks qui détectent les mises à jour sur les champs virtuels et déclenchent l'action? Difficile à documenter et déroutant aussi.
2) Imaginez que les utilisateurs puissent ajouter des commentaires à un sondage. Les commentaires feront partie du modèle d'enquête (j'utiliserais MongoDB pour cela, donc considérez chaque objet d'enquête comme ayant un commentaires tableau). Le client Web appelait la méthode GET /survey/123
sur le service d'enquête qui renvoyait les commentaires parmi les autres propriétés (question, réponses, ..). Mais qu'en est-il de l'ajout de commentaires? Dois-je utiliser un service dédié pour cela, ou comment cela s'intégrerait-il dans le service de l'enquête? À quoi ressemblerait une telle demande?
Un nouveau hook fourni par la communauté peut être utile pour envoyer ce courrier asynchrone avec l'appel de la base de données. https://github.com/feathersjs/feathers-community-hooks/blob/master/src/run-parallel.js – JohnSz
Merci pour le +50! – JohnSz