npm install ebay-promised --save
This module provides a succint, verbose way to build requests with the eBay API.
Currently it works in production applications with the eBay XML POST Trading API, and I have not properly fleshed out the other eBay services.
Most of the other services are GET based and query string driven.
- Bluebird Promises
- Transparent pagination
- Transparent eBay compliant rate-limiting
- Reasonable response parsers
- Functionally tested vs the Sandbox API
- ergonomic chaining API with immutability
- transparently can load instance from ENV vars
- proper Error subclassing to enable verbose use of
Promise.catch
Reading through the Functional Tests is a great way to familiarize yourself with some common API calls.
# Basic Setup
import Ebay from 'ebay-promised'
import config from './config'
const ebay = Ebay.create(config)
const {err} = Ebay.errors
ebay
.GetMyeBaySelling() // Transforms it to a sealed Request, global config can no longer change
.ActiveList({ Include: true }) // Pass in a field,value
.DetailLevel("ReturnAll") // Pass in another field, value
.run() // Run the request against the eBay API
.then(handleSuccess)
.catch(err.Ebay_Api_Error, err => {
// this error is a special case
// it means your HTTP request was successful but eBay did not like it
})
.catch( err = {
// catch all other errors ala:
// Network Errors
})
// Ebay can also load your credentials from `process.env`
const envEbay = Ebay.fromEnv()
All calls, fields, and globals that are currently defined live in ./es6/definitions
If you find a call that is missing, feel free to open an issue so it can be addressed, or make a pull request.
Internally ebay-promised will attempt to detect when a request is paginated and go ahead and grab the subsequent pages for you and concatenate the results.
Pull requests are welcome.
To build the library (using bash):
set npm_package_config_in=es6
set npm_package_config_out=lib
npm run compile
To run tests:
For functional testing, you must have an eBay API Sandbox id setup, with correct keys and tokens. See Application Keys for details. Once you have the application keys, also click "User Tokens" on the same page, to set up or obtain your user authorization token.
Place these tokens into a file called test/fixtures/auth.private.js, exported as follows:
module.exports = {
EBAY_APP_ID: 'YourAppId',
EBAY_DEV_ID: 'YourDevId',
EBAY_CERT: 'YourCertificate',
EBAY_TOKEN: 'YourUserAuthToken',
};
and then:
npm test