Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Soluções para problemas comuns de geração de esquema, autorização, introspecção e relação do GraphQL no construtor de API de Dados.
Perguntas comuns
O que é a API do GraphQL no DAB?
O Construtor de API de Dados gera automaticamente uma API do GraphQL para cada entidade configurada em dab-config.json. O DAB cria tipos de consulta e mutação com base nas definições de entidade e converte solicitações do GraphQL em consultas de banco de dados em runtime. Nenhuma criação de esquema é necessária para bancos de dados relacionais; O Cosmos DB requer um arquivo de esquema graphQL.
Onde está o ponto de extremidade do GraphQL?
O ponto de extremidade GraphQL está disponível em /<graphql-path>, que, por padrão, é /graphql. O caminho pode ser personalizado usando a opção --graphql.path dentro dab init ou editando dab-config.json. O IDE do GraphQL (Banana Cake Pop) está disponível no mesmo caminho quando o DAB é executado no modo de desenvolvimento.
O DAB dá suporte a assinaturas do GraphQL?
Não. Atualmente, o Construtor de API de Dados não dá suporte a assinaturas do GraphQL. Há suporte apenas para consultas e mutações. Se seu aplicativo exigir atualizações em tempo real, considere realizar polling no endpoint de consulta ou usar um serviço de eventos dedicado em conjunto com o DAB.
Problemas comuns
Esquema graphQL não gerado
Sintoma: O ponto de extremidade GraphQL não retorna tipos para uma entidade ou a entidade está ausente do esquema.
Causa: A entidade não está habilitada para GraphQL ou a configuração da entidade contém um erro que impede a geração de esquema.
Resolução: Abra dab-config.json e confirme se a entidade tem "graphql": { "enabled": true } ou que graphql não está explicitamente definida como false. Verifique os logs de inicialização do DAB em busca de erros de geração de esquema. Verifique se a tabela da source entidade existe no banco de dados e se o usuário do banco de dados tem privilégios suficientes para ler seus metadados.
Mutação retorna erro de autorização
Sintoma: A create, updateou delete mutação retorna um erro de autorização ou permissão negado.
Causa: A função usada na solicitação não tem a permissão necessária configurada para a operação de mutação na entidade.
Resolução: Verifique a permissions matriz da entidade em dab-config.json. Verifique se a função (por exemplo, authenticated) tem create, update, ou delete listada em seu actions. Use dab update para adicionar a permissão e, em seguida, reinicie o DAB.
Inspeção desabilitada em produção
Sintoma: Os clientes ou ferramentas do GraphQL recebem um erro, como Introspection is not allowed ao consultar o esquema.
Causa: O DAB desabilita a introspecção do GraphQL ao ser executado no modo de produção. Esse é o comportamento esperado e é um padrão de segurança para evitar expor o esquema a clientes não autorizados.
Resolução: Esse comportamento é por design. Para habilitar a introspecção durante o desenvolvimento, execute o DAB com --no-https-redirect ou confirme que host.mode está definido como development em dab-config.json. Não habilite a introspecção em implementações de produção.
O campo Relação retorna nulo
Sintoma: Uma consulta em uma entidade retorna null para um campo de entidade relacionado, mesmo que os dados relacionados existam no banco de dados.
Causa: A relação entre as duas entidades não está configurada dab-config.jsonou os campos de vinculação são mapeados incorretamente.
Resolução: Use dab update para adicionar a relação, especificando--relationship, --cardinality--target.entitye os campos de vinculação apropriados. Verifique se os nomes das colunas de chave estrangeira em --relationship.fields e --target.fields correspondem aos nomes reais das colunas no banco de dados. Verifique os logs do DAB para erros de geração de junções.
O nome da relação coincide com um nome de campo exposto
Sintoma: Consultas em uma entidade com uma relação retornam resultados inesperados ou um erro de esquema, especialmente quando um nome de relação corresponde a um dos próprios nomes de campo da entidade.
Causa: Atualmente, o Construtor de API de Dados não valida que nomes de relação e nomes de campo expostos são distintos na mesma entidade. Quando eles se sobrepõem, o esquema gerado é ambíguo e as consultas podem se comportar incorretamente. Essa é uma limitação conhecida rastreada no problema do GitHub nº 1937.
Resolução: Verifique se os nomes de relação não duplicam nenhum nome de campo exposto pela mesma entidade. Renomeie a relação (usando --relationship in dab update) ou o campo exposto (usando --map in dab update) para torná-los distintos.