Esta documentación ha sido traducida automáticamente por IA.
ResourceManager: Gestión de Recursos
La funcionalidad de gestión de recursos de NocoBase puede convertir automáticamente las colecciones (tablas de datos) y asociaciones existentes en recursos. Incluye varios tipos de operaciones para ayudar a los desarrolladores a construir rápidamente operaciones de recursos para APIs REST. A diferencia de las APIs REST tradicionales, las operaciones de recursos de NocoBase no dependen de los métodos de solicitud HTTP, sino que determinan la operación específica a ejecutar mediante la definición explícita de :action.
Generación automática de recursos
NocoBase convierte automáticamente las colecciones y asociaciones definidas en la base de datos en recursos. Por ejemplo, si define dos colecciones, posts y tags:
Esto generará automáticamente los siguientes recursos:
- Recurso
posts - Recurso
tags - Recurso de asociación
posts.tags
Ejemplos de solicitud:
Las operaciones de recursos de NocoBase no dependen directamente de los métodos de solicitud, sino que determinan las operaciones mediante definiciones explícitas de :action.
Operaciones de Recursos
NocoBase ofrece una amplia variedad de tipos de operaciones integradas para satisfacer diversas necesidades de negocio.
Operaciones CRUD Básicas
Operaciones de Relación
Parámetros de Operación
Los parámetros de operación comunes incluyen:
filter: Condiciones de consultavalues: Valores a establecerfields: Campos a devolverappends: Incluir datos asociadosexcept: Excluir campossort: Reglas de ordenaciónpage,pageSize: Parámetros de paginaciónpaginate: Si habilitar la paginacióntree: Si devolver una estructura de árbolwhitelist,blacklist: Lista blanca/negra de camposupdateAssociationValues: Si actualizar los valores de asociación
Operaciones de Recursos Personalizadas
NocoBase permite registrar operaciones adicionales para recursos existentes. Puede usar registerActionHandlers para personalizar operaciones para todos los recursos o para recursos específicos.
Registrar Operaciones Globales
Registrar Operaciones Específicas de Recursos
Ejemplos de solicitud:
Regla de nomenclatura: resourceName:actionName. Use la sintaxis de puntos (posts.comments) cuando incluya asociaciones.
Recursos Personalizados
Si necesita proporcionar recursos que no están relacionados con las colecciones (tablas de datos), puede definirlos utilizando el método resourceManager.define:
Los métodos de solicitud son consistentes con los recursos generados automáticamente:
GET /api/app:getInfoPOST /api/app:getInfo(admite GET/POST por defecto)
Middleware Personalizado
Utilice el método resourceManager.use() para registrar middleware global. Por ejemplo:
Middleware de registro global
Propiedades Especiales del Contexto
Poder acceder al middleware o a la acción de la capa resourceManager significa que el recurso debe existir.
ctx.action
ctx.action.actionName: Nombre de la operaciónctx.action.resourceName: Puede ser unacoleccióno una asociaciónctx.action.params: Parámetros de la operación
ctx.dataSource
El objeto de la fuente de datos actual.
ctx.getCurrentRepository()
El objeto de repositorio actual.
Cómo obtener objetos resourceManager para diferentes fuentes de datos
El resourceManager pertenece a una fuente de datos, y las operaciones se pueden registrar por separado para diferentes fuentes de datos.
Fuente de Datos Principal
Para la fuente de datos principal, puede usar directamente app.resourceManager para operar:
Otras Fuentes de Datos
Para otras fuentes de datos, puede obtener una instancia específica de fuente de datos a través de dataSourceManager y usar el resourceManager de esa instancia para operar:
Iterar Todas las Fuentes de Datos
Si necesita realizar las mismas operaciones en todas las fuentes de datos añadidas, puede usar el método dataSourceManager.afterAddDataSource para iterar, asegurándose de que el resourceManager de cada fuente de datos pueda registrar las operaciones correspondientes:

