Este documento ha sido traducido por IA. Para información precisa, consulte la versión en inglés.
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.
| Escenario | Descripción |
|---|---|
| Interfaz personalizada | Llamar a APIs de recursos no estándar (por ejemplo, /api/custom/stats, /api/reports/summary). |
| API de terceros | Solicitar servicios externos a través de una URL completa (requiere que el destino admita CORS). |
| Consulta de un solo uso | Obtención temporal de datos que son desechables y no necesitan estar vinculados a ctx.resource. |
| Elección entre APIResource y ctx.request | Utilice APIResource cuando se necesiten datos reactivos, eventos o estados de error; utilice ctx.request() para solicitudes simples y puntuales. |
Todos los recursos poseen lo siguiente:
| Método | Descripción |
|---|---|
getData() | Obtiene los datos actuales. |
setData(value) | Establece los datos (solo localmente). |
hasData() | Indica si existen datos. |
getMeta(key?) / setMeta(meta) | Lee o escribe metadatos. |
getError() / setError(err) / clearError() | Gestión del estado de error. |
on(event, callback) / once / off / emit | Suscripción y activación de eventos. |
| Método | Descripción |
|---|---|
setAPIClient(api) | Establece la instancia de APIClient (generalmente inyectada automáticamente en RunJS). |
getURL() / setURL(url) | URL de la solicitud. |
loading | Lee o escribe el estado de carga (get/set). |
clearRequestParameters() | Limpia los parámetros de la solicitud. |
setRequestParameters(params) | Fusiona y establece los parámetros de la solicitud. |
setRequestMethod(method) | Establece el método de la solicitud (por ejemplo, 'get', 'post'; el valor predeterminado es 'get'). |
addRequestHeader(key, value) / removeRequestHeader(key) | Encabezados de la solicitud. |
addRequestParameter(key, value) / getRequestParameter(key) / removeRequestParameter(key) | Agrega, elimina o consulta un parámetro individual. |
setRequestBody(data) | Cuerpo de la solicitud (utilizado para POST/PUT/PATCH). |
setRequestOptions(key, value) / getRequestOptions() | Opciones generales de la solicitud. |
users:list o posts:get, que se concatenará con la baseURL./api/custom/endpoint, concatenada con la baseURL de la aplicación.| Método | Descripción |
|---|---|
refresh() | Inicia una solicitud basada en la URL, método, parámetros, encabezados y datos actuales. Escribe la respuesta data en setData(data) y activa el evento 'refresh'. En caso de fallo, establece setError(err) y lanza un ResourceError, sin activar el evento refresh. Requiere que api y la URL estén configurados. |
ctx.api es inyectado por el entorno; generalmente no es necesario llamar a setAPIClient manualmente. Si se utiliza en un escenario sin contexto, debe configurarlo usted mismo.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.getData() mantiene su valor anterior; la información del error se puede recuperar a través de getError().ctx.request() para solicitudes simples de una sola vez; utilice APIResource cuando se requiera gestión de datos reactivos, eventos y estado de error.ctx.resource.