Compartilhar via


Adicionar uma API do GraphQL sintético e configurar resolvedores de campo

APLICA-SE A: todas as camadas do Gerenciamento de API

No Gerenciamento de API, você pode adicionar uma API do GraphQL em um dos dois modelos: passagem para um ponto de extremidade do GraphQL existente ou importação de um esquema do GraphQL e criação de uma API do GraphQL sintético com resolvedores de campo personalizados. Para obter mais informações, confira a Visão geral do GraphQL.

Observação

Atualmente, esse recurso não está disponível em workspaces.

Neste artigo, você vai:

  • Importe um esquema graphQL para sua instância de Gerenciamento de API do Azure.
  • Configure um resolvedor para uma consulta GraphQL usando um ponto de extremidade HTTP existente.
  • Testar sua API do GraphQL.

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

Pré-requisitos

  • Uma instância de Gerenciamento de API existente. Crie uma, se ainda não tiver.
  • Um arquivo de esquema do GraphQL válido com a extensão .graphql.
  • Um ponto de extremidade do GraphQL de back-end é opcional para esse cenário.

Navegar até a instância de Gerenciamento de API

  1. No portal do Azure, pesquise e selecione Serviços de Gerenciamento de API:

    Captura de tela que mostra os serviços de Gerenciamento de API nos resultados da pesquisa.

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

    Captura de tela que mostra uma instância de Gerenciamento de API na página de serviços do Gerenciamento de API.

Adicionar um esquema GraphQL

  1. No painel esquerdo, em APIs, selecione APIs.

  2. Em Definir uma nova API, selecione o bloco do GraphQL .

    Captura de tela selecionando o azulejo do GraphQL.

  3. Na caixa de diálogo, selecione Completo e insira valores nos campos necessários, conforme descrito na tabela a seguir.

    Captura de tela da página Criar a partir do esquema GraphQL.

    Value Descrição
    Nome de exibição O nome pelo qual a API do GraphQL será exibida.
    Nome O nome bruto da API do GraphQL. Preenche automaticamente conforme você digita o nome de exibição.
    Tipo do GraphQL Selecione GraphQL sintético para importar de um arquivo de esquema do GraphQL.
    Ponto de extremidade do GraphQL de fallback Opcionalmente, insira uma URL com um nome de ponto de extremidade da API do GraphQL. Gerenciamento de API passa consultas GraphQL para esse ponto de extremidade quando um resolvedor personalizado não é definido para um campo.
    Descrição Adicione uma descrição da sua API.
    Esquema de URL Selecione um esquema com base no ponto de extremidade do GraphQL. Selecione uma das opções que inclui um esquema de WebSocket (WS ou WSS) se a API do GraphQL incluir o tipo de assinatura. A seleção padrão é HTTP(S).
    Sufixo da URL da API Adicione um sufixo de URL para identificar a API específica na instância de Gerenciamento de API. Deve ser exclusivo na instância de Gerenciamento de API.
    URL base Campo não editável exibindo a URL base da API.
    Marcas Opcionalmente, associe sua API do GraphQL a marcas novas ou existentes.
    Produtos Associe sua API do GraphQL a um produto para publicá-la.
    Controlar a versão desta API? Marque a caixa de seleção para aplicar um esquema de controle de versão à API do GraphQL.
  4. Selecione Criar.

  5. Depois que a API for criada, examine ou modifique o esquema na guia Esquema .

Configurar um resolvedor

Configure um resolvedor para mapear um campo no esquema a um ponto de extremidade HTTP existente. As etapas de alto nível são fornecidas aqui. Para mais detaljes, confira Configurar um resolvedor do GraphQL.

Suponha que você importou o esquema graphQL básico a seguir e deseja configurar um resolvedor para a users consulta.

type Query {
    users: [User]
}

type User {
    id: String!
    name: String!
}
  1. No painel esquerdo, em APIs, selecione APIs.

  2. Selecione a API do GraphQL.

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

    1. Selecione um campo e, em seguida, focalize o ponteiro na margem esquerda.

    2. Selecione Adicionar resolvedor.

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

  4. No painel Criar resolvedor:

    1. Atualize a propriedade Name se desejar, insira opcionalmente uma Descrição e confirme ou atualize as seleções Tipo e Campo.
    2. Em Fonte de dados, selecione API HTTP.
  5. No editor Política do resolvedor, atualize o elemento <http-data-source> com elementos filho para seu cenário. Por exemplo, o resolvedor a seguir recupera o users campo 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 do resolvedor de uma política no portal.

  6. Selecione Criar.

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

Dica

Ao editar uma política de resolvedor, selecione Executar teste para verificar a saída da fonte de dados, que você pode validar no esquema. Se ocorrerem erros, a resposta incluirá informações sobre solução de problemas.

Testar a API do GraphQL

  1. Vá para sua instância de Gerenciamento de API.

  2. No painel esquerdo, na seção APIs , selecione APIs.

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

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

  5. Em Cabeçalhos:

    1. Selecione o cabeçalho no menu Nome .
    2. Insira o valor na caixa Valor .
    3. Adicione mais cabeçalhos selecionando Adicionar cabeçalho.
    4. Exclua cabeçalhos usando o botão de lixeira.
  6. Se você adicionou um produto à sua API do GraphQL, adicione um escopo de produto em Apply product scope.

  7. No editor de Consultas, siga um destes procedimentos:

    1. Selecione pelo menos um campo ou subcampo na lista no menu à esquerda do editor. Os campos e subcampos selecionados são exibidos no editor de consultas.

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

      Captura de tela do editor de consultas.

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

  9. Selecione Enviar.

  10. Veja a Resposta.

    Captura de tela da resposta da consulta de teste.

  11. Repita as etapas anteriores para testar cargas diferentes.

  12. Quando terminar de testar, saia do console de teste.

Proteger a API do GraphQL

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