Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
Um recurso de API genérico baseado em URL para fazer solicitações, adequado para qualquer interface HTTP. Ele herda da classe base FlowResource e a estende com configurações de solicitação e o método refresh(). Diferente do MultiRecordResource e do SingleRecordResource, o APIResource não depende de um nome de recurso; ele faz a solicitação diretamente pela URL, sendo ideal para interfaces personalizadas, APIs de terceiros e outros cenários.
Formas de criação: ctx.makeResource('APIResource') ou ctx.initResource('APIResource'). Você deve configurar a URL com setURL() antes de usar. No contexto do RunJS, o ctx.api (APIClient) é injetado automaticamente, portanto, não é necessário chamar setAPIClient manualmente.
| Cenário | Descrição |
|---|---|
| Interface Personalizada | Chamar APIs de recursos não padronizados (ex: /api/custom/stats, /api/reports/summary). |
| API de Terceiros | Solicitar serviços externos via URL completa (requer suporte a CORS pelo destino). |
| Consulta Única | Busca temporária de dados que é descartável e não precisa ser vinculada ao ctx.resource. |
| Escolha entre APIResource e ctx.request | Use APIResource quando precisar de dados reativos, eventos ou estados de erro; use ctx.request() para solicitações simples e pontuais. |
Todos os Resources possuem:
| Método | Descrição |
|---|---|
getData() | Obtém os dados atuais. |
setData(value) | Define os dados (apenas localmente). |
hasData() | Verifica se existem dados. |
getMeta(key?) / setMeta(meta) | Lê/escreve metadados. |
getError() / setError(err) / clearError() | Gerenciamento do estado de erro. |
on(event, callback) / once / off / emit | Inscrição e disparo de eventos. |
| Método | Descrição |
|---|---|
setAPIClient(api) | Define a instância do APIClient (geralmente injetada automaticamente no RunJS). |
getURL() / setURL(url) | URL da solicitação. |
loading | Lê/escreve o estado de carregamento (get/set). |
clearRequestParameters() | Limpa os parâmetros da solicitação. |
setRequestParameters(params) | Mescla e define os parâmetros da solicitação. |
setRequestMethod(method) | Define o método da solicitação (ex: 'get', 'post', o padrão é 'get'). |
addRequestHeader(key, value) / removeRequestHeader(key) | Cabeçalhos da solicitação. |
addRequestParameter(key, value) / getRequestParameter(key) / removeRequestParameter(key) | Adiciona, remove ou consulta um único parâmetro. |
setRequestBody(data) | Corpo da solicitação (usado em POST/PUT/PATCH). |
setRequestOptions(key, value) / getRequestOptions() | Opções gerais de solicitação. |
users:list ou posts:get, que será concatenada com a baseURL./api/custom/endpoint, concatenado com a baseURL da aplicação.| Método | Descrição |
|---|---|
refresh() | Inicia uma solicitação baseada na URL, método, parâmetros, cabeçalhos e dados atuais. Ele grava os dados da resposta em setData(data) e dispara o evento 'refresh'. Em caso de falha, define o erro com setError(err) e lança um ResourceError, sem disparar o evento refresh. Requer que o api e a URL estejam configurados. |
ctx.api é injetado pelo ambiente; o setAPIClient manual geralmente é desnecessário. Se usado em um cenário sem contexto, você mesmo deve configurá-lo.refresh() inicia uma solicitação baseada na configuração atual; o método, parâmetros, dados, etc., devem ser configurados antes da chamada.getData() mantém seu valor anterior; as informações de erro podem ser obtidas via getError().ctx.request() para solicitações simples e únicas; use APIResource quando for necessário gerenciamento de dados reativos, eventos e estado de erro.ctx.resource