Este documento foi traduzido por IA. Para informações precisas, consulte a versão em inglês.
APIResource
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ários de Uso
Capacidades da Classe Base (FlowResource)
Todos os Resources possuem:
Configuração da Solicitação
Formato da URL
- Estilo de Recurso: Suporta a abreviação de recursos do NocoBase, como
users:listouposts:get, que será concatenada com abaseURL. - Caminho Relativo: Ex:
/api/custom/endpoint, concatenado com abaseURLda aplicação. - URL Completa: Use endereços completos para solicitações de origem cruzada (cross-origin); o destino deve ter o CORS configurado.
Busca de Dados
Exemplos
Solicitação GET Básica
URL em Estilo de Recurso
Solicitação POST (com Corpo da Solicitação)
Ouvindo o Evento refresh
Tratamento de Erros
Cabeçalhos de Solicitação Personalizados
Observações
- Dependência de ctx.api: No RunJS, o
ctx.apié injetado pelo ambiente; osetAPIClientmanual geralmente é desnecessário. Se usado em um cenário sem contexto, você mesmo deve configurá-lo. - Refresh é uma Solicitação: O método
refresh()inicia uma solicitação baseada na configuração atual; o método, parâmetros, dados, etc., devem ser configurados antes da chamada. - Erros não Atualizam os Dados: Em caso de falha, o
getData()mantém seu valor anterior; as informações de erro podem ser obtidas viagetError(). - Comparação com ctx.request: Use
ctx.request()para solicitações simples e únicas; useAPIResourcequando for necessário gerenciamento de dados reativos, eventos e estado de erro.
Relacionados
- ctx.resource - A instância de recurso no contexto atual
- ctx.initResource() - Inicializa e vincula ao
ctx.resource - ctx.makeResource() - Cria uma nova instância de recurso sem vincular
- ctx.request() - Solicitação HTTP geral, adequada para chamadas simples e únicas
- MultiRecordResource - Voltado para coleções/listas, suporta CRUD e paginação
- SingleRecordResource - Voltado para registros únicos

