

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de solucionadores locales en AWS AppSync
<a name="tutorial-local-resolvers"></a>

**nota**  
Ahora admitimos de forma básica el tiempo de ejecución APPSYNC\$1JS y su documentación. Considere la opción de utilizar el tiempo de ejecución APPSYNC\$1JS y sus guías [aquí](https://docs.aws.amazon.com/appsync/latest/devguide/tutorials-js.html).

AWS AppSync le permite utilizar orígenes de datos compatibles (AWS Lambda, Amazon DynamoDB o Amazon OpenSearch Service) para realizar diversas operaciones. Sin embargo, en determinados casos, es posible que no sea necesario realizar una llamada a un origen de datos admitido.

Aquí es donde un solucionador local es útil. En lugar de llamar a un origen de datos remoto, el solucionador local simplemente **reenviará** los resultados de la plantilla de mapeo de solicitudes a la plantilla de mapeo de respuestas. La resolución de campo no sale de AWS AppSync.

Los solucionadores locales son útiles para varios casos de uso. El caso de uso más habitual consiste en publicar notificaciones sin activar una llamada de origen de datos. Para demostrar este caso de uso vamos a crear una aplicación buscapersonas con la que los usuarios puedan enviarse notificaciones. Este ejemplo utiliza *suscripciones*, de modo que si no está familiarizado con las *suscripciones*, puede seguir el tutorial de [datos en tiempo real](aws-appsync-real-time-data.md).

## Creación de la aplicación buscapersonas
<a name="create-the-paging-application"></a>

En nuestra aplicación buscapersonas, los clientes pueden suscribirse a una bandeja de entrada y enviar notificaciones a otros clientes. Cada notificación contiene un mensaje. El esquema es el siguiente:

```
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
}
```

Asociemos un solucionador al campo `Mutation.page`. En el panel **Schema (Esquema)**, haga clic en *Attach Resolver (Asociar solucionador)* junto a la definición de campo en el panel derecho. Cree un nuevo origen de datos de tipo *None (Ninguno)* y asígnele el nombre *PageDataSource*.

Para la plantilla de mapeo de solicitud, escriba:

```
{
  "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()"
  }
}
```

Y para la plantilla de mapeo de respuesta, seleccione la opción predeterminada *Forward the result (Reenviar el resultado)*. Guarde el solucionador. Su aplicación ya está lista, ya puede ejecutarla.

## Envío y suscripción a notificaciones
<a name="send-and-subscribe-to-pages"></a>

Para que los clientes reciban notificaciones, primero deben estar suscritos a una bandeja de entrada.

En el panel **Queries (Consultas)** vamos a ejecutar la suscripción `inbox`:

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

 *Nadia* recibirá notificaciones siempre que se invoque la mutación `Mutation.page`. Vamos a invocar la mutación ejecutándola:

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

Acabamos de demostrar el uso de solucionadores locales enviando una notificación y recibiéndola sin salir de AWS AppSync.