We are excited to announce version 2 of the Alexa Skills Kit (ASK) Software Development Kit (SDK) for Node.js. The updated SDK improves existing features and adds new ones to help you build skills faster and reduce complexity in your code. The ASK SDK v2 for Node.js provides the same core feature set and advantages as the ASK SDK v2 for Java that we announced last month.
More Options for Event and Error Handling
We’ve improved the Request Handlers in the ASK SDK v2 for Node.js. In v1 of the SDK, each handler could handle only one kind of request determined by the request type. Now in v2 you can easily group request processing logic that applies to one or more request type. You can also use new Interceptors to invoke common logic that applies to multiple request types. By centralizing common logic, you can avoid duplicating code. We’ve also added Error Handlers in the SDK to allow you to gracefully respond to non-obvious errors in your code, such as missing handlers for infrequent events.
Greater Flexibility in Storing and Retrieving Skill Data
Data storage and retrieval in a skill can be useful for managing customer interactions either during a single session or across multiple sessions; for example, you store the customer’s spot in a story, their level in a game, and much more, and use the stored information to determine what happens next. The Attributes Manager provided in v1 of the SDK provided data storage and retrieval, but with limitations: you could store and retrieve data for your skill at only one scope, either for the given skill session for across sessions. If you chose to store data across sessions, you could only use Amazon DynamoDB as your backend store. We removed these limitations in the ASK SDK v2. The updated Attributes Manager allows you to store data at the level of the current request, the current skill session, and across multiple skill sessions. In addition, now you can use either DynamoDB or the external database of your choice for storing data across sessions. Finally, you now have multiple options for using the stored data – you can either use it to determine which request handler should be invoked for an incoming request, or by explicitly retrieving and processing it within your handlers or other code.
Simpler Calls to Alexa Services
Alexa Service Clients enable you to easily make calls to Alexa services, and now we automatically inject endpoint and authentication token information for you. You can now rely on the v2 SDK to populate this information automatically rather than doing it in your code.
Improved Packaging and Tool Support
We’ve also made improvements to help optimize your development environment:
- Modular package setup allows you to selectively install the package you need for your skill, reducing the code package size when possible. For example, the ask-sdk-core package requires only 40 kb after compression compared to 5 MB for the ask-sdk package.
- A cleaner handler interface enables better IDE support, such as hints and auto-completion. All SDK tools are provided in the handlerInput object which are easily accessible and easier for unit testing.
- We’ve included TypeScript definition files for use in TypeScript projects and to support tools that can read .d.ts files.
- We support the latest ecmascript language standard, which can yield cleaner code style. For example, you can use the async/await combination to replace the Promise callback and minimize the amount of code you have to write.
Download and Try the Updated SDK
Download the ASK SDK v2 for Node.js from the alexa-skills-kit-sdk-for-nodejs repository on GitHub. You’ll find everything you need to get started, from a “Hello, world” sample to the complete technical documentation. If you want to update an existing skill built with v1 of the SDK, read the ASK-SDK-Migration-Guide on GitHub.