Heutzutage würde man wahrscheinlich benutzerdefinierte Methoden hinzufügen
Siehe beispielsweise authentication-management , wo sie dieses Muster verwenden:
app.service('authManagement').create({
type: 'specialMethod',
data...
})
Früher wurden benutzerdefinierte Methoden abgelehnt #86, laut @daffl "aus mehreren guten Gründen" . In der Stack-Exchange-Antwort ist der Link für die detaillierte Erklärung defekt, daher habe ich möglicherweise einige gute Punkte übersehen.
Wie auch immer, wenn keine benutzerdefinierten Methoden vorhanden sind, glaube ich, dass Platz für eine generische Methode vorhanden ist. Wie service.post
funktioniert das sowohl über REST als auch über Socket.
Den FAQ-Eintrag finden Sie hier: https://docs.feathersjs.com/faq/readme.html#how -do-i-create-custom-methods und den verlinkten Issue-Kommentar (https://github.com/feathersjs /feathers/issues/488#issuecomment-269687714) enthält weitere Einzelheiten dazu.
Ich habe es nie gebraucht, aber wenn wirklich ein Bedarf an benutzerdefinierten Aktionen besteht, scheint mir die Implementierung eines benutzerdefinierten Dienstes mit einer create
-Methode in Ordnung zu sein. app.service('action').create
macht für mich mehr Sinn als app.service('action').post
(was bedeutet post
überhaupt außerhalb von HTTP?).
Vielen Dank für Links zu früheren Diskussionen, sie haben einige sehr gute Punkte!
Ein Punkt, der meiner Meinung nach zuvor nicht erwähnt wurde, ist die einfache Verständlichkeit für Anfänger. Zum Beispiel die Authentifizierungshaken create
und remove
. Was bedeutet es wirklich , eine Authentifizierung zu erstellen? Das verwirrt mich als Anfänger. Ich habe den Leitfaden von Anfang an gelesen und ehrlich gesagt die Auswirkungen von Federn als reines REST-Framework vergessen oder falsch verstanden.
Ich habe es nie gebraucht, aber wenn es wirklich Bedarf an benutzerdefinierten Aktionen gibt
Ich nehme an, Sie haben eine Authentifizierung benötigt, z. B. app.authenticate
, was ich als benutzerdefinierte Aktion sehe. Es ist mit service.create
implementiert, da mache ich Haarspalterei 😅
macht für mich mehr Sinn als app.service('action').post (was bedeutet post überhaupt außerhalb von HTTP?).
Posten war nur ein Vorschlag, und ich meine Posten im Sinne von „etwas veröffentlichen“. Die Verbindung zu HTTP POST kann jedoch verwirrend sein. action
, do
und method
funktionieren genauso gut.
Wie ich Sie und die früheren Diskussionen verstehe, ist dies definitiv außerhalb der Grenzen, da Federn ausschließlich eine REST-Architektur sind. Also schließe ich. Danke für die Antwort!
Ich habe ein Plugin erstellt, mit dem Sie benutzerdefinierte Methoden zu Diensten hinzufügen können: https://www.npmjs.com/package/feathers-custom-methods
Dieses Problem wurde automatisch gesperrt, da es nach seiner Schließung keine Aktivitäten mehr gegeben hat. Bitte öffnen Sie ein neues Problem mit einem Link zu diesem Problem für verwandte Fehler.
Hilfreichster Kommentar
Ich habe ein Plugin erstellt, mit dem Sie benutzerdefinierte Methoden zu Diensten hinzufügen können: https://www.npmjs.com/package/feathers-custom-methods