apa-api
Version:
Amazon Product Advertising API client
92 lines (65 loc) • 2.38 kB
Markdown
node-apa-api
============
Amazon Product Advertising API client
//docs.aws.amazon.com/AWSECommerceService/latest/DG/AnatomyOfaRESTRequest.html)
* [Request Signatures](http://docs.aws.amazon.com/AWSECommerceService/latest/DG/rest-signature.html)
Represents API connection details:
```coffeescript
{APIMeta} = require 'apa-api'
options = {
protocol: 'http'
endPoint: 'webservices.amazon.com'
service: 'AWSECommerceService'
uri: '/onca/xml'
method: 'GET'
version: '2011-08-01'
}
meta = new APIMeta(options)
```
Represents API authentication data (AWS access/secret):
```coffeescript
{Credential} = require 'apa-api'
options = {
accessKey: "Your AWS access key",
secretKey: "Your AWS secret key",
associateTag: "Associate tag"
}
credential = new Credential(options)
```
Use this client to the Amazon Product Advertising service.
```coffeescript
{Service, ApiMeta, Credential} = require 'apa-api'
connectionDetails = {}
credentialDetails = {}
service = new Service(new ApiMeta(connectionDetails), new Credentials(credentialDetails), [signer], [client])
```
Service use the following optional members:
* signer - Request signer, default to **RequestSigner**
* client - Default to [request](https://github.com/request/request)
Service provides methods (feature enrichment in progress):
* [itemLookup](http://docs.aws.amazon.com/AWSECommerceService/latest/DG/ItemLookup.html) - itemLookup(params) -
The method checks parameters: mandatory parameters, type checking, defaults (do not send params equal to defaults).
# Usage
Using defaults
```coffeescript
async = require 'async'
concat = require 'concat-stream'
{Service, ApiMeta, Credential} = require 'apa-api'
service = new Service(new ApiMeta(), new Credentials())
itemIds = ['0123456789', '1234567890', '2345678901', ...]
async.mapLimit itemIds, 5, (itemId, callback) ->
service.itemLookup(itemId: itemId)
.on 'error', callback
.pipe concat (response) ->
# Response can contain error has been described in xml
# We ignore this validation in this example
callback(null, response)
```
Module provides easy access to the Amazon Product Advertising API:
* [REST Request Anatomy](http: