Promise-based Node.js client for Amazon Product Advertising API
The major differences between this project and other implementations are:
- Item search returns an EcmaScript6 promise. (Check out a great article about ES6 promises)
- Item search is "yieldable". So it plays well with fantastic next-gen libs such as Koa and Co. See example
- The entire codebase is very small (~90 LOC)
Install using npm:
npm install amazon-product-api
###Basic usage
Require library
amazon = require('amazon-product-api');
Create client
var client = amazon.createClient({
awsId: "aws ID",
awsSecret: "aws Secret",
awsTag: "aws Tag"
});
Now you can search for items on amazon like this:
//search for Pulp Fiction dvd offers
client.itemSearch({
keywords: 'Pulp fiction',
searchIndex: 'DVD',
responseGroup: 'ItemAttributes,Offers,Images'
}).then(function(results){
console.log(results);
}).catch(function(error){
console.log(error);
});
###Search query options:
condition: availiable options - 'All', 'New', 'Used', 'Refurbished', 'Collectible'. Defaults to 'All'
keywords: Defaults to ''
responseGroup: You can use multiple values by separating them with comma (e.g responseGroup: 'ItemAttributes,Offers,Images'). Defaults to'ItemAttributes'
searchIndex: Defaults to 'All'.
##Example ###Setup your own server that doesn't require signatures and timestamp and returns JSON
koa = require 'koa'
router = require 'koa-router'
amazonProductApi = require 'amazon-product-api'
app = koa()
app.use router app
client = amazonProductApi.createClient
awsTag: process.env.AWS_TAG
awsId: process.env.AWS_ID
awsSecret: process.env.AWS_SECRET
app.get '/amazon/:index', (next) ->*
try
searchResults = yield client.itemSearch
keywords: @request.query.title
searchIndex: @params.index
responseGroup: 'ItemAttributes,Offers,Images'
@body = searchResults
catch error
@body = error
app.listen process.env.PORT || 5000
Working demo:
Search for Alien DVDs
Search for Streets of Rage videogame
Search for shoes