Adicione uma API sintética do GraphQL e configure resolvedores de campo

APLICA-SE A: Todas as camadas de gerenciamento de API

No Gerenciamento de API, você pode adicionar uma API GraphQL em um de dois modelos: passar para um ponto de extremidade GraphQL existente ou importar um esquema GraphQL e criar uma API GraphQL sintética com resolvedores de campo personalizados. Para obter mais informações, consulte a visão geral do GraphQL.

Neste artigo, você:

  • Importar um esquema GraphQL para sua instância de Gerenciamento de API
  • Configurar um resolvedor para uma consulta GraphQL usando um ponto de extremidade HTTP existente
  • Teste sua API do GraphQL

Se você quiser expor um ponto de extremidade GraphQL existente como uma API, consulte Importar uma API GraphQL.

Pré-requisitos

  • Uma instância de gerenciamento de API existente. Crie um, caso ainda não o tenha feito.
  • Um arquivo de esquema GraphQL válido com a .graphql extensão.
  • Um ponto de extremidade GraphQL de back-end é opcional para esse cenário.

Vá para a sua instância de Gestão de API

  1. No portal do Azure, procure e selecione serviços de Gerenciamento de API.

    Selecionar serviços de gerenciamento de API

  2. Na página Serviços de Gerenciamento de API, selecione sua instância de Gerenciamento de API.

    Selecione sua instância de Gerenciamento de API

Adicionar um esquema GraphQL

  1. No menu de navegação lateral, na seção APIs , selecione APIs.

  2. Em Definir uma nova API, selecione o ícone GraphQL .

    Captura de tela mostrando a seleção do ícone GraphQL na lista de APIs.

  3. Na caixa de diálogo, selecione Completo e preencha os campos de formulário obrigatórios.

    Captura de tela de campos para criar uma API GraphQL.

    Campo Descrição
    Nome a apresentar O nome pelo qual sua API GraphQL será exibida.
    Nome Nome bruto da API GraphQL. Preenche automaticamente à medida que você digita o nome para exibição.
    Tipo GraphQL Selecione Synthetic GraphQL para importar de um arquivo de esquema GraphQL.
    Ponto de extremidade GraphQL de fallback Opcionalmente, insira uma URL com um nome de ponto de extremidade da API GraphQL. O Gerenciamento de API passa as consultas do GraphQL para esse ponto de extremidade quando um resolvedor personalizado não está definido para um campo.
    Descrição Adicione uma descrição da sua API.
    Esquema do URL Faça uma seleção com base no seu endpoint GraphQL. Selecione uma das opções que inclui um esquema WebSocket (WS ou WSS) se sua API GraphQL incluir o tipo de assinatura. Seleção padrão: HTTP(S).
    Sufixo do URL da API Adicione um sufixo de URL para identificar essa API específica nesta instância de Gerenciamento de API. Ele deve ser exclusivo nesta instância de Gerenciamento de API.
    URL Base Campo não editável exibindo o URL base da API
    Etiquetas Associe sua API do GraphQL a tags novas ou existentes.
    Produtos Associe sua API GraphQL a um produto para publicá-la.
    Versão desta API? Selecione esta opção para aplicar um esquema de controle de versão à sua API do GraphQL.
  4. Selecione Criar.

  5. Depois que a API for criada, procure ou modifique o esquema na guia Design .

Configurar resolvedor

Configure um resolvedor para mapear um campo no esquema para um ponto de extremidade HTTP existente. Etapas de alto nível são fornecidas aqui. Para obter detalhes, consulte Configurar um resolvedor GraphQL.

Suponha que você importou o seguinte esquema básico do GraphQL e queria configurar um resolvedor para a consulta dos usuários .

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. No menu de navegação lateral, na seção APIs , selecione APIs> sua API GraphQL.

  2. Na guia Esquema, revise o esquema para um campo em um tipo de objeto no qual você deseja configurar um resolvedor.

    1. Selecione um campo e, na margem esquerda, passe o ponteiro do mouse.

    2. Selecione + Adicionar resolvedor

      Captura de tela da adição de um resolvedor GraphQL no portal.

  3. Na página Criar resolvedor:

    1. Atualize a propriedade Name se desejar, opcionalmente insira uma Descrição e confirme ou atualize as seleções Tipo e Campo .
    2. Em Fonte de dados, selecione API HTTP.
  4. No editor de políticas do Resolvedor, atualize o <http-data-source> elemento com elementos filho para o seu cenário. Por exemplo, o resolvedor a seguir recupera o campo de usuários fazendo uma GET chamada para uma fonte de dados HTTP existente.

        <http-data-source>
            <http-request>
                <set-method>GET</set-method>
                <set-url>https://myapi.contoso.com/users</set-url>
            </http-request>
        </http-data-source>
    

    Captura de tela da configuração da política do resolvedor no portal.

  5. Selecione Criar.

  6. Para resolver dados para outro campo no esquema, repita as etapas anteriores para criar um resolvedor.

Gorjeta

Ao editar uma política de resolvedor, selecione Executar teste para verificar a saída da fonte de dados, que pode ser validada em relação ao esquema. Se ocorrerem erros, a resposta inclui informações de solução de problemas.

Teste sua API do GraphQL

  1. Navegue até sua instância de Gerenciamento de API.

  2. No menu de navegação lateral, na seção APIs , selecione APIs.

  3. Em Todas as APIs, selecione sua API GraphQL.

  4. Selecione a guia Teste para acessar o console de teste.

  5. Em Cabeçalhos:

    1. Selecione o cabeçalho no menu suspenso Nome .
    2. Insira o valor no campo Valor .
    3. Adicione mais cabeçalhos selecionando + Adicionar cabeçalho.
    4. Exclua cabeçalhos usando o ícone da lixeira.
  6. Se você adicionou um produto à sua API do GraphQL, aplique o escopo do produto em Aplicar escopo do produto.

  7. Em Editor de consultas:

    1. Selecione pelo menos um campo ou subcampo na lista no menu lateral. Os campos e subcampos selecionados aparecem no editor de consultas.

    2. Comece a digitar no editor de consultas para compor uma consulta.

      Captura de ecrã a mostrar a adição de campos ao editor de consultas.

  8. Em Variáveis de consulta, adicione variáveis para reutilizar a mesma consulta ou mutação e passe valores diferentes.

  9. Selecione Enviar.

  10. Veja a resposta.

    Captura de ecrã a mostrar a visualização da resposta à consulta de teste.

  11. Repita as etapas anteriores para testar cargas úteis diferentes.

  12. Quando o teste estiver concluído, saia do console de teste.

Proteja sua API GraphQL

Proteja sua API do GraphQL aplicando políticas de autenticação e autorização existentes e uma política de validação do GraphQL para proteger contra ataques específicos do GraphQL.

Próximos passos