Giter Club home page Giter Club logo

amazon-product-api's Introduction

Amazon Product API

Typescript interface to Amazon product advertising api.

Usage

npm install @mcrowe/amazon-product-api --save

import * as Amazon from '@mcrowe/amazon-product-api'

const key = {
  accessKeyId: '...',
  secretAccessKey: '...',
  associateTag: '...'
}

const result = await Amazon.getProduct(key, 'us', 'B01A...')

if (result.ok) {
  // result.data is the product data (see types.ts for structure)
} else {
  // result.error is a string error code (see "Results" below)
}

// Or, use the bulk api ...

const result = await Amazon.bulkGetProducts(key, 'us', ['B01A...', ...])

if (result.ok) {
  // result.data is a map from asin to product data
}

Results

Lots of things can go wrong when talking to the product api. This library is pessimistic and assumes something will go wrong. Requests return a result object which may represent success or failure. Errors are only thrown in cases that are trully exceptions (unexpected and unknown failure cases). This should never happen.

Here are a list of the known error codes that could occur:

  • fetch_error: There was a fetch error on the client end when trying to get data from AWS.
  • parse_error: The response from Amazon had an unexpected format and we choked when trying to parse it.
  • invalid_associate: The amazon associate associated with the given key was not allowed to make this request
  • invalid_key: The provided api key was not valid.
  • aws_server_error: AWS had an internal server error.
  • aws_throttle: Too many requests have been made on this key recently.

Development

Install npm modules:

npm install

Run tests:

npm test

Release

Release a new version:

bin/release.sh

This will publish a new version to npm, as well as push a new tag up to github.

TODO

  • Proper variant parsing
  • Proper image parsing?

amazon-product-api's People

Contributors

mcrowe avatar kaiaolson avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.