new WPAPI(options)
Construct a REST API client instance object to create
Parameters:
Name | Type | Description | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object
|
An options hash to configure the instance
|
Members
(static) .transport :Object
Default HTTP transport methods object for all WPAPI instances
These methods may be extended or replaced on an instance-by-instance basis
Properties:
Name | Type | Description |
---|---|---|
transport |
Type:
-
Object
#setHeaders
Set the default headers to use for all HTTP requests created from this WPAPI site instance. Accepts a header name and its associated value as two strings, or multiple headers as an object of name-value pairs.
Examples
site.setHeaders( 'Authorization', 'Bearer trustme' )...
site.setHeaders({
Authorization: 'Bearer comeonwereoldfriendsright',
'Accept-Language': 'en-CA'
})...
Methods
(static) .categories() → {WPRequest}
Start a request against /categories endpoint
- Source:
Returns:
- Type:
-
WPRequest
(static) .comments() → {WPRequest}
Start a request against /comments endpoints
- Source:
Returns:
- Type:
-
WPRequest
(static) .discover(url) → {Promise}
Take an arbitrary WordPress site, deduce the WP REST API root endpoint, query that endpoint, and parse the response JSON. Use the returned JSON response to instantiate a WPAPI instance bound to the provided site.
Parameters:
Name | Type | Description |
---|---|---|
url |
string
|
A URL within a REST API-enabled WordPress website |
Returns:
- Type:
-
Promise
A promise that resolves to a configured WPAPI instance bound to the deduced endpoint, or rejected if an endpoint is not found or the library is unable to parse the provided endpoint.
(static) .media() → {WPRequest}
Start a request against /media endpoints
- Source:
Returns:
- Type:
-
WPRequest
(static) .pages() → {WPRequest}
Start a request against /pages endpoints
- Source:
Returns:
- Type:
-
WPRequest
(static) .posts() → {WPRequest}
Start a request against /posts endpoints
- Source:
Returns:
- Type:
-
WPRequest
(static) .settings() → {WPRequest}
Start a request against /settings endpoint
- Source:
Returns:
- Type:
-
WPRequest
(static) .site(endpoint, routes) → {WPAPI}
Convenience method for making a new WPAPI instance
Parameters:
Name | Type | Description |
---|---|---|
endpoint |
String
|
The URI for a WP-API endpoint |
routes |
Object
|
The "routes" object from the JSON object returned from the root API endpoint of a WP site, which should be a dictionary of route definition objects keyed by the route's regex pattern |
Examples
These are equivalent:
var wp = new WPAPI({ endpoint: 'http://my.blog.url/wp-json' });
var wp = WPAPI.site( 'http://my.blog.url/wp-json' );
`WPAPI.site` can take an optional API root response JSON object to use when
bootstrapping the client's endpoint handler methods: if no second parameter
is provided, the client instance is assumed to be using the default API
with no additional plugins and is initialized with handlers for only those
default API routes.
These are equivalent:
// {...} means the JSON output of http://my.blog.url/wp-json
var wp = new WPAPI({
endpoint: 'http://my.blog.url/wp-json',
json: {...}
});
var wp = WPAPI.site( 'http://my.blog.url/wp-json', {...} );
(static) .statuses() → {WPRequest}
Start a request against /statuses endpoints
- Source:
Returns:
- Type:
-
WPRequest
(static) .tags() → {WPRequest}
Start a request against /tags endpoint
- Source:
Returns:
- Type:
-
WPRequest
(static) .taxonomies() → {WPRequest}
Start a request against /taxonomies endpoints
- Source:
Returns:
- Type:
-
WPRequest
(static) .transport(transport) → {WPAPI}
Set custom transport methods to use when making HTTP requests against the API
Pass an object with a function for one or many of "get", "post", "put",
"delete" and "head" and that function will be called when making that type
of request. The provided transport functions should take a WPRequest handler
instance (e.g. the result of a wp.posts()...
chain or any other chaining
request handler) as their first argument; a data
object as their second
argument (for POST, PUT and DELETE requests); and an optional callback as
their final argument. Transport methods should invoke the callback with the
response data (or error, as appropriate), and should also return a Promise.
Parameters:
Name | Type | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
transport |
Object
|
A dictionary of HTTP transport methods
|
Example
var site = new WPAPI({
endpoint: 'http://my-site.com/wp-json'
});
// Overwrite the GET behavior to inject a caching layer
site.transport({
get: function( wpreq, cb ) {
var result = cache[ wpreq ];
// If a cache hit is found, return it via the same callback/promise
// signature as the default transport method
if ( result ) {
if ( cb && typeof cb === 'function' ) {
cb( null, result );
}
return Promise.resolve( result );
}
// Delegate to default transport if no cached data was found
return WPAPI.transport.get( wpreq, cb ).then(function( result ) {
cache[ wpreq ] = result;
return result;
});
}
});
This is advanced behavior; you will only need to utilize this functionality
if your application has very specific HTTP handling or caching requirements.
Refer to the "http-transport" module within this application for the code
implementing the built-in transport methods.
(static) .types() → {WPRequest}
Start a request against /types endpoints
- Source:
Returns:
- Type:
-
WPRequest
(static) .users() → {WPRequest}
Start a request against /users endpoints
- Source:
Returns:
- Type:
-
WPRequest
#auth(credentials) → {WPAPI}
Set the authentication to use for a WPAPI site handler instance. Accepts basic HTTP authentication credentials (string username & password) or a Nonce (for cookie authentication) by default; may be overloaded to accept OAuth credentials in the future.
Parameters:
Name | Type | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
credentials |
Object
|
An authentication credentials object
|
Examples
site.auth({
username: 'admin',
password: 'securepass55'
})...
site.auth({
nonce: 'somenonce'
})...
#bootstrap(routes) → {WPAPI}
Deduce request methods from a provided API root JSON response object's routes dictionary, and assign those methods to the current instance. If no routes dictionary is provided then the instance will be bootstrapped with route handlers for the default API endpoints only.
This method is called automatically during WPAPI instance creation.
Parameters:
Name | Type | Description |
---|---|---|
routes |
Object
|
The "routes" object from the JSON object returned from the root API endpoint of a WP site, which should be a dictionary of route definition objects keyed by the route's regex pattern |
#namespace(namespace) → {Object}
Access API endpoint handlers from a particular API namespace object
Parameters:
Name | Type | Description |
---|---|---|
namespace |
string
|
A namespace string |
Returns:
- Type:
-
Object
An object of route endpoint handler methods for the routes within the specified namespace
Example
wp.namespace( 'myplugin/v1' ).author()...
// Default WP endpoint handlers are assigned to the wp instance itself.
// These are equivalent:
wp.namespace( 'wp/v2' ).posts()...
wp.posts()...
registerRoute(namespace, restBase, optionsopt) → {function}
Create and return a handler for an arbitrary WP REST API endpoint.
The first two parameters mirror register_rest_route
in the REST API
codebase:
- Source:
Parameters:
Name | Type | Attributes | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
namespace |
string
|
A namespace string, e.g. 'myplugin/v1' |
|||||||||||||
restBase |
string
|
A REST route string, e.g. '/author/(?P |
|||||||||||||
options |
object
|
<optional> |
An (optional) options object
|
Returns:
- Type:
-
function
An endpoint handler factory function for the specified route
#root(relativePathopt) → {WPRequest}
Generate a query against an arbitrary path on the current endpoint. This is useful for
requesting resources at custom WP-API endpoints, such as WooCommerce's /products
.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
relativePath |
String
|
<optional> |
An endpoint-relative path to which to bind the request |
#url(url) → {WPRequest}
Generate a request against a completely arbitrary endpoint, with no assumptions about or mutation of path, filtering, or query parameters. This request is not restricted to the endpoint specified during WPAPI object instantiation.
Parameters:
Name | Type | Description |
---|---|---|
url |
String
|
The URL to request |
Example
Generate a request to the explicit URL "http://your.website.com/wp-json/some/custom/path"
wp.url( 'http://your.website.com/wp-json/some/custom/path' ).get()...