A Craft CMS wrapper around webhubworks/weclapp-api-core.
It is the Craft counterpart to webhubworks/weclapp-api-laravel: instead of a
Laravel service provider + facade, it registers a singleton Yii service that
exposes a fully configured core Client. The base URL and auth token are read
from environment variables, so no per-call configuration is needed.
- Craft CMS 4.0+ or 5.0+
- PHP 8.3+
composer require webhubworks/craft-weclapp-api
php craft plugin/install weclapp-apiSet the two required environment variables in your .env:
WECLAPP_API_BASE_URL=https://your-tenant.weclapp.com/webapp/api/v2
WECLAPP_AUTH_TOKEN=your-auth-token
# Optional - request/response logging to storage/logs/weclapp-api.log (default: true)
WECLAPP_ENABLE_LOGGING=trueNote:
WECLAPP_API_BASE_URLshould include the full API path (e.g./webapp/api/v2). The adapter concatenates this base with the relative endpoint paths produced by the core client.
The plugin registers the core client behind a singleton api service:
use Webhub\WeclappApiCraft\Plugin;
// Shared, configured core client
$client = Plugin::getInstance()->getClient();
// equivalent to:
$client = Plugin::getInstance()->api->getClient();
$count = $client->getArticleCount();
$articles = $client->getArticle();getClient() returns the generated Webhubworks\WeclappApiCore\Client, so every
endpoint method from the core package is available.
Plugin::config()registersWeclappServiceas theapicomponent. Craft instantiates Yii components once per request, giving singleton semantics.WeclappService::getClient()readsWECLAPP_API_BASE_URLandWECLAPP_AUTH_TOKENviacraft\helpers\App::env(), then builds the core client with theCraftHttpClientPSR-18 adapter, caching the result.CraftHttpClientimplementsPsr\Http\Client\ClientInterfaceon top ofCraft::createGuzzleClient(). It prepends the base URL to each relative endpoint URI and attaches theAuthenticationTokenheader - the same contract the Laravel wrapper fulfils with Laravel's HTTP client.
The MIT License (MIT). Please see License File for more information.