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”.

Usando resolvedores locais em AWS AppSync

Modo de foco
Usando resolvedores locais em AWS AppSync - 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á.

nota

Agora, oferecemos suporte principalmente ao runtime do APPSYNC_JS e sua documentação. Considere usar o runtime do APPSYNC_JS e seus guias disponíveis aqui.

AWS AppSync permite que você use fontes de dados compatíveis (AWS Lambda Amazon DynamoDB ou OpenSearch Amazon Service) para realizar várias operações. No entanto, em determinados cenários, uma chamada para uma fonte de dados compatível pode não ser necessária.

É aí que o resolvedor local se torna útil. Em vez de chamar uma fonte de dados remota, o resolvedor local apenas encaminhará o resultado do modelo de mapeamento da solicitação para o modelo de mapeamento da resposta. A resolução do campo não deixará o AWS AppSync.

Os resolvedores locais são úteis em vários casos de uso. O caso de uso mais popular é a publicação de notificações sem acionar uma chamada da fonte de dados. Para demonstrar esse caso de uso, vamos criar um aplicativo de paginação, onde os usuários podem paginar uns aos outros. Esse exemplo utiliza Assinaturas, portanto se não estiver familiarizado com Assinaturas, siga o tutorial Dados em tempo real.

Criar o aplicativo de paginação

No aplicativo de paginação, os clientes podem assinar uma caixa de entrada e enviar páginas para outros clientes. Cada página inclui uma mensagem. Aqui está o esquema:

schema { query: Query mutation: Mutation subscription: Subscription } type Subscription { inbox(to: String!): Page @aws_subscribe(mutations: ["page"]) } type Mutation { page(body: String!, to: String!): Page! } type Page { from: String to: String! body: String! sentAt: String! } type Query { me: String }

Vamos anexar um resolvedor no campo Mutation.page. No painel Esquema, clique em Anexar resolvedor ao lado da definição do campo no painel à direita. Crie uma nova fonte de dados do tipo Nenhuma e nomeie-a PageDataSource.

Para o modelo de mapeamento da solicitação, insira:

{ "version": "2017-02-28", "payload": { "body": $util.toJson($context.arguments.body), "from": $util.toJson($context.identity.username), "to": $util.toJson($context.arguments.to), "sentAt": "$util.time.nowISO8601()" } }

E para o modelo de mapeamento da resposta, selecione o padrão Encaminhar o resultado. Salve o resolvedor. O aplicativo agora está pronto, vamos paginar!

Enviar e assinar páginas

Para que os clientes recebam páginas, primeiro eles devem assinar uma caixa de entrada.

No painel Consultas vamos executar a assinatura inbox:

subscription Inbox { inbox(to: "Nadia") { body to from sentAt } }

Nadia receberá páginas sempre que a mutação Mutation.page for invocada. Vamos invocar a mutação executando a mutação:

mutation Page { page(to: "Nadia", body: "Hello, World!") { body to from sentAt } }

Nós acabamos de demonstrar o uso de resolvedores locais, enviando uma Página e recebendo-a sem sair do AWS AppSync.

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