Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
APIResource
Un recurso de API genérico para realizar solicitudes basadas en URLs, adecuado para cualquier interfaz HTTP. Hereda de la clase base FlowResource y la extiende con configuración de solicitudes y el método refresh(). A diferencia de MultiRecordResource y SingleRecordResource, APIResource no depende de un nombre de recurso; realiza solicitudes directamente por URL, lo que lo hace ideal para interfaces personalizadas, APIs de terceros y otros escenarios.
Método de creación: ctx.makeResource('APIResource') o ctx.initResource('APIResource'). Debe llamar a setURL() antes de su uso. En el contexto de RunJS, ctx.api (APIClient) se inyecta automáticamente, por lo que no es necesario llamar a setAPIClient manualmente.
Escenarios de uso
Capacidades de la clase base (FlowResource)
Todos los recursos poseen lo siguiente:
Configuración de la solicitud
Formato de URL
- Estilo de recurso: Admite la abreviatura de recursos de NocoBase, como
users:listoposts:get, que se concatenará con labaseURL. - Ruta relativa: Por ejemplo,
/api/custom/endpoint, concatenada con labaseURLde la aplicación. - URL completa: Utilice direcciones completas para solicitudes de origen cruzado; el destino debe tener configurado CORS.
Obtención de datos
Ejemplos
Solicitud GET básica
URL con estilo de recurso
Solicitud POST (con cuerpo de solicitud)
Escuchar el evento refresh
Manejo de errores
Encabezados de solicitud personalizados
Consideraciones
- Dependencia de ctx.api: En RunJS,
ctx.apies inyectado por el entorno; generalmente no es necesario llamar asetAPIClientmanualmente. Si se utiliza en un escenario sin contexto, debe configurarlo usted mismo. - Refresh equivale a la solicitud:
refresh()inicia una solicitud basada en la configuración actual; el método, los parámetros, los datos, etc., deben configurarse antes de la llamada. - Los errores no actualizan los datos: En caso de fallo,
getData()mantiene su valor anterior; la información del error se puede recuperar a través degetError(). - Frente a ctx.request: Utilice
ctx.request()para solicitudes simples de una sola vez; utiliceAPIResourcecuando se requiera gestión de datos reactivos, eventos y estado de error.
Relacionado
- ctx.resource - La instancia de recurso en el contexto actual.
- ctx.initResource() - Inicializar y vincular a
ctx.resource. - ctx.makeResource() - Crear una nueva instancia de recurso sin vincularla.
- ctx.request() - Solicitud HTTP general, adecuada para llamadas simples y puntuales.
- MultiRecordResource - Orientado a colecciones/listas, admite CRUD y paginación.
- SingleRecordResource - Orientado a registros individuales.

