Diese Dokumentation wurde automatisch von KI übersetzt.
ResourceManager Ressourcenverwaltung
Die Ressourcenverwaltung von NocoBase kann bestehende Datenbanktabellen (Sammlungen) und Verknüpfungen (Associations) automatisch in Ressourcen umwandeln. Sie bietet zudem integrierte Operationstypen, die Entwicklern helfen, REST-API-Ressourcenoperationen schnell zu erstellen. Im Gegensatz zu traditionellen REST-APIs basieren NocoBase-Ressourcenoperationen nicht auf HTTP-Anfragemethoden, sondern definieren die auszuführende Operation explizit über :action.
Automatische Ressourcengenerierung
NocoBase wandelt in der Datenbank definierte Sammlungen und Associations automatisch in Ressourcen um. Definieren Sie beispielsweise zwei Sammlungen, posts und tags:
Dadurch werden automatisch die folgenden Ressourcen generiert:
posts-Ressourcetags-Ressourceposts.tags-Associationsressource
Anfragebeispiele:
NocoBase-Ressourcenoperationen hängen nicht direkt von den Anfragemethoden ab, sondern bestimmen die auszuführenden Operationen durch explizite :action-Definitionen.
Ressourcenoperationen
NocoBase bietet eine Vielzahl integrierter Operationstypen, um unterschiedliche Geschäftsanforderungen zu erfüllen.
Grundlegende CRUD-Operationen
Beziehungsoperationen
Operationsparameter
Häufig verwendete Operationsparameter sind:
filter: Abfragebedingungenvalues: Festzulegende Wertefields: Anzugebende Rückgabefelderappends: Verknüpfte Daten einschließenexcept: Felder ausschließensort: Sortierregelnpage,pageSize: Paginierungsparameterpaginate: Paginierung aktivierentree: Baumstruktur zurückgebenwhitelist,blacklist: Feld-Whitelist/BlacklistupdateAssociationValues: Verknüpfungswerte aktualisieren
Benutzerdefinierte Ressourcenoperationen
NocoBase ermöglicht das Registrieren zusätzlicher Operationen für bestehende Ressourcen. Sie können registerActionHandlers verwenden, um Operationen für alle oder bestimmte Ressourcen anzupassen.
Globale Operationen registrieren
Ressourcenspezifische Operationen registrieren
Anfragebeispiele:
Namenskonvention: resourceName:actionName. Bei Verknüpfungen wird die Punktsyntax (posts.comments) verwendet.
Benutzerdefinierte Ressourcen
Wenn Sie Ressourcen bereitstellen müssen, die nicht mit Datenbanktabellen verknüpft sind, können Sie diese mit der Methode resourceManager.define definieren:
Die Anfragemethoden sind konsistent mit den automatisch generierten Ressourcen:
GET /api/app:getInfoPOST /api/app:getInfo(unterstützt standardmäßig sowohl GET als auch POST)
Benutzerdefinierte Middleware
Verwenden Sie die Methode resourceManager.use(), um globale Middleware zu registrieren. Zum Beispiel:
Globale Logging-Middleware
Spezielle Context-Eigenschaften
Wenn Middleware oder Aktionen die resourceManager-Ebene erreichen können, bedeutet dies, dass die Ressource definitiv existiert.
ctx.action
ctx.action.actionName: Operationsnamectx.action.resourceName: Kann eine Sammlung oder Association seinctx.action.params: Operationsparameter
ctx.dataSource
Das aktuelle Datenquellenobjekt.
ctx.getCurrentRepository()
Das aktuelle Repository-Objekt.
So erhalten Sie resourceManager-Objekte für verschiedene Datenquellen
resourceManager gehört zu einer Datenquelle; Operationen können für verschiedene Datenquellen separat registriert werden.
Haupt-Datenquelle
Für die Haupt-Datenquelle können Sie app.resourceManager direkt verwenden, um Operationen auszuführen:
Andere Datenquellen
Für andere Datenquellen können Sie über dataSourceManager eine spezifische Datenquelleninstanz abrufen und deren resourceManager für Operationen verwenden:
Alle Datenquellen durchlaufen
Wenn Sie dieselben Operationen für alle hinzugefügten Datenquellen ausführen möchten, können Sie die Methode dataSourceManager.afterAddDataSource verwenden, um diese zu durchlaufen und sicherzustellen, dass der resourceManager jeder Datenquelle die entsprechenden Operationen registrieren kann:

