Esta documentação foi traduzida automaticamente por IA.
Requisição
O NocoBase oferece um APIClient baseado no Axios que você pode usar para fazer requisições HTTP em qualquer lugar onde seja possível obter um Context.
Locais comuns onde você pode obter um Context incluem:
app.contextengine.contextplugin.contextmodel.context
ctx.api.request()
ctx.api.request() é o método mais comum para fazer requisições. Seus parâmetros e valores de retorno são idênticos aos de axios.request().
Uso Básico
Você pode usar as configurações padrão de requisição do Axios diretamente:
ctx.api.axios
ctx.api.axios é uma instância de AxiosInstance através da qual você pode modificar as configurações padrão globais ou adicionar interceptores de requisição.
Modificar Configuração Padrão
Para mais configurações disponíveis, consulte Configurações Padrão do Axios.
Interceptores de Requisição e Resposta
Os interceptores permitem processar requisições antes de serem enviadas ou respostas após serem recebidas. Por exemplo, você pode adicionar cabeçalhos de requisição de forma consistente, serializar parâmetros ou exibir mensagens de erro unificadas.
Exemplo de Interceptor de Requisição
Exemplo de Interceptor de Resposta
Cabeçalhos de Requisição Personalizados do NocoBase Server
A seguir, estão os cabeçalhos de requisição personalizados suportados pelo NocoBase Server, que podem ser usados em cenários de múltiplos aplicativos, internacionalização, múltiplos papéis ou múltiplas autenticações.
💡 Dica
Esses cabeçalhos de requisição geralmente são injetados automaticamente pelos interceptores e não precisam ser definidos manualmente. Apenas em cenários especiais (como ambientes de teste ou cenários de múltiplas instâncias) você precisará adicioná-los manualmente.
Uso em Componentes
Em componentes React, você pode obter o objeto de contexto através de useFlowContext() e, em seguida, chamar ctx.api para fazer requisições.
Usando com o useRequest do ahooks
No desenvolvimento real, você pode usar o Hook useRequest fornecido pelo ahooks para lidar de forma mais conveniente com o ciclo de vida e o estado das requisições.
Essa abordagem torna a lógica de requisição mais declarativa, gerenciando automaticamente os estados de carregamento, tratamento de erros e lógica de atualização, sendo muito adequada para uso em componentes.

