This library is an opinionated, resource-based JSON API client for WordPress that strives to adhere to the offical JSON API 1.0 spec.
- WordPress
base_url
is specified as the root URL used when interacting with the API.type
is the JSON API type for the current resource
class Invoice extends Json_Api_Wp_Resource
{
public function __construct()
{
parent::__construct(
"https://api.site.com/v1/", // base URL
"invoices" // type
)
}
}
The username
is required, but the password
is optional and defaults to blank.
Json_Api_Wp_Resource::auth( "jdoe", "secret" );
If you're using a typical API key over HTTP Authentication, here is an example of using a base class to abstract that away.
class Base extends Json_Api_Wp_Resource
{
public function __construct( $type )
{
parent::__construct( "http://api.site.come/v1/", $type );
}
public static function set_api_key( $api_key )
{
parent::auth( $apiKey );
}
}
class Invoice extends Base
{
public function __construct()
{
parent::__construct( "invoices" );
}
}
Base::set_api_key( "some secret key" );
$invoices = Invoice::get_all();
$invoice = Invoice::create([
"description" => "T-Shirt",
"total" => 10.95
]);
This library does not yet support updating of resources because of the lack of
PATCH
support in the WordPress HTTP library.
$invoice = Invoice::get_one( "invoice_123" );
$invoices = Invoice::get_all();
This library does not yet support updating of resources because of the lack of
DELETE
support in the WordPress HTTP library.