Partilhar via


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.

Nota

Atualmente, esse recurso não está disponível em espaços de trabalho.

Neste artigo, você:

  • 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.
  • Teste sua API GraphQL.

Se desejar publicar um endpoint GraphQL existente como uma API, veja 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 end-point GraphQL de back-end é opcional para desse cenário.

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

  1. No Portal do Azure , procure e selecione Serviços de Gestão de API:

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

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

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

Adicionar um esquema GraphQL

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

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

    Captura de ecrã da seleção do mosaico GraphQL.

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

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

    Valor Descrição
    Nome de exibição O nome pelo qual sua API GraphQL será exibida.
    Nome O 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.
    Endpoint de fallback GraphQL Opcionalmente, insira uma URL com um nome de ponto de extremidade da API GraphQL. A Gestão de API passa as instruções GraphQL para este endpoint quando um resolvedor personalizado não está definido para um campo.
    Descrição Adicione uma descrição da sua API.
    Esquema do URL Selecione um esquema 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. A seleção padrão é HTTP(S).
    Sufixo do 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 o URL base da API.
    Etiquetas Opcionalmente, 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? Marque a caixa de seleção para aplicar um esquema de controle de versão à sua API do GraphQL.
  4. Selecione Criar.

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

Configurar um resolvedor

Configure um resolvedor para mapear um campo no esquema para um endpoint HTTP existente. As etapas de alto nível são apresentadas aqui. Para obter detalhes, consulte Configurar um resolvedor GraphQL.

Suponha que você importou o seguinte esquema básico do GraphQL 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 sua API GraphQL.

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

    1. Selecione um campo e, em seguida, passe o ponteiro do rato sobre a margem esquerda.

    2. Selecione Adicionar resolvedor.

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

  4. No painel 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.
  5. No editor de políticas do Resolvedor, atualize o elemento <http-data-source> com elementos filho para o 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 ecrã que mostra a configuração de uma política de resolução no portal.

  6. Selecione Criar.

  7. Para resolver dados para outro campo no esquema, repita as etapas anteriores para criar outro 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. 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 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 da lixeira.
  6. Se você adicionou um produto à sua API do GraphQL, adicione um escopo de produto em Aplicar escopo do produto.

  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 aparecem no editor de consultas.

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

      Captura de ecrã do 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 tela da resposta da consulta de teste.

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

  12. Quando terminar o teste, 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.