Cette documentation a été traduite automatiquement par IA.
ResourceManager
La fonctionnalité de gestion des ressources de NocoBase peut convertir automatiquement les collections et les associations existantes en ressources. Elle intègre également plusieurs types d'opérations pour vous aider à construire rapidement des opérations de ressources pour les API REST. Contrairement aux API REST traditionnelles, les opérations de ressources de NocoBase ne dépendent pas des méthodes de requête HTTP, mais déterminent l'opération spécifique à exécuter via des définitions explicites de :action.
Génération automatique de ressources
NocoBase convertit automatiquement les collection et les association définies dans la base de données en ressources. Par exemple, si vous définissez deux collections, posts et tags :
Ceci générera automatiquement les ressources suivantes :
- ressource
posts - ressource
tags - ressource d'association
posts.tags
Exemples de requêtes :
Les opérations de ressources NocoBase ne dépendent pas directement des méthodes de requête, mais déterminent les opérations via des définitions explicites de :action.
Opérations sur les ressources
NocoBase propose de nombreux types d'opérations intégrées pour répondre à divers besoins métier.
Opérations CRUD de base
Opérations de relation
Paramètres d'opération
Les paramètres d'opération courants incluent :
filter: Conditions de requêtevalues: Valeurs à définirfields: Spécifie les champs à retournerappends: Inclut les données associéesexcept: Exclut les champssort: Règles de tripage,pageSize: Paramètres de paginationpaginate: Indique si la pagination est activéetree: Indique si une structure arborescente doit être retournéewhitelist,blacklist: Liste blanche/noire de champsupdateAssociationValues: Indique si les valeurs d'association doivent être mises à jour
Opérations de ressources personnalisées
NocoBase permet d'enregistrer des opérations supplémentaires pour les ressources existantes. Vous pouvez utiliser registerActionHandlers pour personnaliser les opérations pour toutes les ressources ou pour des ressources spécifiques.
Enregistrer des opérations globales
Enregistrer des opérations spécifiques à une ressource
Exemples de requêtes :
Règle de nommage : resourceName:actionName. Utilisez la syntaxe à points (posts.comments) lorsque vous incluez des associations.
Ressources personnalisées
Si vous avez besoin de fournir des ressources qui ne sont pas liées à des collections, vous pouvez les définir en utilisant la méthode resourceManager.define :
Les méthodes de requête sont cohérentes avec les ressources générées automatiquement :
GET /api/app:getInfoPOST /api/app:getInfo(prend en charge GET/POST par défaut)
Middleware personnalisé
Utilisez la méthode resourceManager.use() pour enregistrer un middleware global. Par exemple :
Middleware de journalisation global
Propriétés de contexte spéciales
Le fait de pouvoir accéder au middleware ou à l'action de la couche resourceManager signifie que la ressource existe nécessairement.
ctx.action
ctx.action.actionName: Nom de l'opérationctx.action.resourceName: Peut être une collection ou une associationctx.action.params: Paramètres de l'opération
ctx.dataSource
L'objet source de données actuel.
ctx.getCurrentRepository()
L'objet repository actuel.
Comment obtenir les objets resourceManager pour différentes sources de données
Le resourceManager appartient à une source de données, et vous pouvez enregistrer des opérations séparément pour différentes sources de données.
Source de données principale
Pour la source de données principale, vous pouvez utiliser directement app.resourceManager :
Autres sources de données
Pour les autres sources de données, vous pouvez obtenir une instance de source de données spécifique via dataSourceManager et utiliser le resourceManager de cette instance :
Parcourir toutes les sources de données
Si vous devez effectuer les mêmes opérations sur toutes les sources de données ajoutées, vous pouvez utiliser la méthode dataSourceManager.afterAddDataSource pour itérer, en vous assurant que le resourceManager de chaque source de données peut enregistrer les opérations correspondantes :

