Prompteo

Unidad 4 · 2 min

El handler con el SDK de Node.js

El RequestHandler del SDK de Node.js, el responseBuilder y los atributos de sesión.

El handler con el SDK de Node.js

El backend de la skill se escribe con el ASK SDK para Node.js, distribuido en paquetes como ask-sdk (distribución estándar) y ask-sdk-core.

RequestHandler

Cada handler define exactamente dos métodos: canHandle(handlerInput), que devuelve un booleano decidiendo si le toca procesar la petición, y handle(handlerInput), que hace el trabajo y devuelve un objeto Response. Dentro de canHandle se puede evaluar el tipo de petición, el nombre del intent, valores de slots o el estado del diálogo. La skill tiene que manejar todos los intents que declara su modelo de interacción — en Mi Agenda, eso incluye un CreateReminderIntentHandler.

La respuesta

El responseBuilder arma la respuesta con métodos encadenables: speak(...) para hablar, reprompt(...) para repreguntar (solo se usa si la sesión sigue abierta), tarjetas como withSimpleCard(...), y por último getResponse(), que produce el objeto final. handle() siempre tiene que devolver ese objeto —nunca un string suelto.

Atributos de sesión

Un mapa clave-valor para retener datos mientras la sesión sigue abierta. Se guardan con handlerInput.attributesManager.setSessionAttributes(...) y llegan en la siguiente petición dentro de session.attributes. Al cerrarse la sesión, se pierden: si hace falta que sobrevivan entre sesiones —como el próximo recordatorio que Mi Agenda tiene que crear, o una preferencia del usuario—, hay que guardarlos en un almacenamiento externo. De eso se trata la unidad de persistencia, más adelante.