joeybeninghove / json-api-wp-client
WordPress client library for consuming JSON APIs following the 1.0 spec at jsonapi.org
0.1.1
2017-02-07 22:10 UTC
Requires
- php: >= 5.6
This package is not auto-updated.
Last update: 2025-05-11 05:27:57 UTC
README
This library is an opinionated, resource-based JSON API client for WordPress that strives to adhere to the offical JSON API 1.0 spec.
Requirements
- WordPress
Usage
Define a resource
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 ) } }
Set up HTTP Authentication
The username
is required, but the password
is optional and defaults to blank.
Json_Api_Wp_Resource::auth( "jdoe", "secret" );
API Key example
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();
Create a resource
$invoice = Invoice::create([ "description" => "T-Shirt", "total" => 10.95 ]);
Update a resource
This library does not yet support updating of resources because of the lack of
PATCH
support in the WordPress HTTP library.
Get a single resource
$invoice = Invoice::get_one( "invoice_123" );
Get all resources
$invoices = Invoice::get_all();
Delete a resource
This library does not yet support updating of resources because of the lack of
DELETE
support in the WordPress HTTP library.