Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Exemplo de resolvedor de pipeline com o Amazon DynamoDB

Modo de foco
Exemplo de resolvedor de pipeline com o Amazon DynamoDB - AWS AppSync GraphQL

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Digamos que você queira anexar um resolvedor de pipeline em um campo chamado getPost(id:ID!) que retorna o tipo Post de uma fonte de dados do Amazon DynamoDB com a seguinte consulta do GraphQL:

getPost(id:1){ id title content }

Primeiro, anexe um resolvedor simples a Query.getPost com o código abaixo. Este é um exemplo de código de resolvedor simples. Não há lógica definida no manipulador de solicitação, e o manipulador de resposta simplesmente retorna o resultado da última função.

/** * Invoked **before** the request handler of the first AppSync function in the pipeline. * The resolver `request` handler allows to perform some preparation logic * before executing the defined functions in your pipeline. * @param ctx the context object holds contextual information about the function invocation. */ export function request(ctx) { return {} } /** * Invoked **after** the response handler of the last AppSync function in the pipeline. * The resolver `response` handler allows to perform some final evaluation logic * from the output of the last function to the expected GraphQL field type. * @param ctx the context object holds contextual information about the function invocation. */ export function response(ctx) { return ctx.prev.result }

Em seguida, defina a função GET_ITEM que recupera um postItem da sua fonte de dados:

import { util } from '@aws-appsync/utils' import * as ddb from '@aws-appsync/utils/dynamodb' /** * Request a single item from the attached DynamoDB table datasource * @param ctx the context object holds contextual information about the function invocation. */ export function request(ctx) { const { id } = ctx.args return ddb.get({ key: { id } }) } /** * Returns the result * @param ctx the context object holds contextual information about the function invocation. */ export function response(ctx) { const { error, result } = ctx if (error) { return util.appendError(error.message, error.type, result) } return ctx.result }

Se houver um erro durante a solicitação, o manipulador de resposta da função anexará no final um erro que será retornado ao cliente chamador na resposta do GraphQL. Adicione a função GET_ITEM à sua lista de funções do resolvedor. Quando você executa a consulta, o manipulador de solicitações da GET_ITEM função usa os utilitários fornecidos pelo módulo AWS AppSync DynamoDB para criar uma DynamoDBGetItem solicitação usando o como chave. id ddb.get({ key: { id } })gera a GetItem operação apropriada:

{ "operation" : "GetItem", "key" : { "id" : { "S" : "1" } } }

AWS AppSync usa a solicitação para buscar os dados do Amazon DynamoDB. Depois que os dados são retornados, eles são tratados pelo manipulador de resposta da função GET_ITEM, que verifica erros e retorna o resultado.

{ "result" : { "id": 1, "title": "hello world", "content": "<long story>" } }

Finalmente, o manipulador de resposta do resolvedor retorna o resultado diretamente.

Como trabalhar com eventos

Se ocorrer um erro na sua função durante uma solicitação, ele será disponibilizado no manipulador de resposta da função em ctx.error. Você pode acrescentar o erro no final da sua resposta do GraphQL usando o utilitário util.appendError. É possível disponibilizar o erro para outras funções no pipeline usando o stash. Veja o exemplo abaixo:

/** * Returns the result * @param ctx the context object holds contextual information about the function invocation. */ export function response(ctx) { const { error, result } = ctx; if (error) { if (!ctx.stash.errors) ctx.stash.errors = [] ctx.stash.errors.push(ctx.error) return util.appendError(error.message, error.type, result); } return ctx.result; }

Nesta página

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.