Package Exports
- @woocommerce/api
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@woocommerce/api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
WooCommerce API Client
An isometric API client for interacting with WooCommerce installations. Here are the current and planned features:
- TypeScript Definitions
- Axios API Client with support for OAuth & basic auth
- Repositories to simplify interaction with basic data types
- Service classes for common activities such as changing settings
Usage
npm install @woocommerce/api --save-dev
Depending on what you're intending to get out of the API client there are a few different ways of using it.
REST API
The simplest way to use the client is directly:
import { HTTPClientFactory } from '@woocommerce/api';
// You can create an API client using the client factory with pre-configured middleware for convenience.
let httpClient = HTTPClientFactory.withBasicAuth(
// The base URL of your REST API.
'https://example.com/wp-json/',
// The username for your WordPress user.
'username',
// The password for your WordPress user.
'password',
);
// You can also create an API client configured for requests using OAuth.
httpClient = HTTPClientFactory.withOAuth(
// The base URL of your REST API.
'https://example.com/wp-json/',
// The OAuth API Key's consumer secret.
'consumer_secret',
// The OAuth API Key's consumer password.
'consumer_pasword',
);
// You can then use the client to make API requests.
httpClient.get( '/wc/v3/products' ).then( ( response ) => {
// Access the status code from the response.
response.statusCode;
// Access the headers from the response.
response.headers;
// Access the data from the response, in this case, the products.
response.data;
}, ( error ) => {
// Handle errors that may have come up.
} );
Repositories
As a convenience utility we've created repositories for core data types that can simplify interacting with the API. These repositories provide CRUD methods for ease-of-use:
import { SimpleProduct } from '@woocommerce/api';
// Prepare the HTTP client that will be consumed by the repository.
// This is necessary so that it can make requests to the REST API.
const httpClient = HTTPClientFactory.withBasicAuth( 'https://example.com/wp-json/','username','password' );
const repository = SimpleProduct.restRepository( httpClient );
// The repository can now be used to create models.
const product = repository.create( { name: 'Simple Product', regularPrice: '9.99' } );
// The response will be one of the models with structured properties and TypeScript support.
product.id;