https://github.com/johnfoderaro/apaw
Amazon Product Advertising API 5.x Wrapper
https://github.com/johnfoderaro/apaw
Last synced: 8 months ago
JSON representation
Amazon Product Advertising API 5.x Wrapper
- Host: GitHub
- URL: https://github.com/johnfoderaro/apaw
- Owner: johnfoderaro
- Created: 2020-03-05T02:30:36.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T09:35:05.000Z (about 3 years ago)
- Last Synced: 2024-11-18T19:46:18.442Z (over 1 year ago)
- Language: JavaScript
- Size: 969 KB
- Stars: 3
- Watchers: 2
- Forks: 3
- Open Issues: 13
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Apaw
## Amazon Product Advertising API 5.x Wrapper
**Apaw** is a dependency-free Node.js wrapper around version 5.x of the Amazon Product Advertising API (PAAPI). This module handles making the AWS Signature Version 4 signed HTTP requests for the PAAPI service. For more detailed information on the Amazon Product Advertising API and how to use it, [please read Amazon's documentation](https://webservices.amazon.com/paapi5/documentation/).
## Installation
- `npm i @johnfoderaro/apaw`
## Example
```javascript
const Apaw = require('@johnfoderaro/apaw');
const apaw = Apaw({
host: 'webservices.amazon.com',
region: 'us-east-1',
key: 'AKIDEXAMPLE',
secret: 'wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY',
});
(async () => {
try {
const results = await apaw.request('SearchItems', {
Keywords: 'Harry',
Marketplace: 'www.amazon.com',
PartnerTag: 'xyz-20',
PartnerType: 'Associates',
Resources: [
'Images.Primary.Small',
'ItemInfo.Title',
'Offers.Listings.Price',
],
SearchIndex: 'All',
});
console.log(results);
} catch (e) {
console.error(e);
}
})();
```
## Usage
### Apaw(parameters).request(operation, payload)
The `Apaw` factory function returns an object with the method `request`. Below is a summary of the required arguments for both functions:
- `parameters` is an object that must include the following:
```javascript
{
host: String,
region: String,
key: String,
secret: String,
}
```
For information on `host` and `region`, please consult the [PAAPI "Host and Region" documentation](https://webservices.amazon.com/paapi5/documentation/common-request-parameters.html#host-and-region).
`key` represents "Access Key" and `secret` represents "Secret Key" PAAPI credentials. For information on these credentials, please consult the [PAAPI](https://webservices.amazon.com/paapi5/documentation/register-for-pa-api.html).
- `operation` is a case sensitive string that must be a valid operation as outlined by the PAAPI documentation.
```javascript
'SearchItems'
```
- `payload` is an object that must contain valid request key/values as outlined by the PAAPI documentation.
```javascript
{
Keywords: 'Harry',
Marketplace: 'www.amazon.com',
PartnerTag: 'xyz-20',
PartnerType: 'Associates',
Resources: [
'Images.Primary.Small',
'ItemInfo.Title',
'Offers.Listings.Price',
],
SearchIndex: 'All',
}
```
For information on `operation` and how to properly create and format the `payload` object, please consult [PAAPI "Operations" documentation](https://webservices.amazon.com/paapi5/documentation/operations.html).
The `request` method Rejects errors emitted by the Node `https` module or Resolves an object with the following shape:
```javascript
{
data: String,
headers: Object,
status: Number,
}
```
- `data` is the stringified HTTP response body
- `headers` is an object containing the response headers
- `status` is a number representing the HTTP response status code
## License
MIT