webhubworks/craft-weclapp-api

A Craft CMS wrapper around webhubworks/weclapp-api-core.

Maintainers

Package info

github.com/webhubworks/craft-weclapp-api

Type:craft-plugin

pkg:composer/webhubworks/craft-weclapp-api

Statistics

Installs: 6

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-06-05 08:44 UTC

This package is auto-updated.

Last update: 2026-06-05 08:45:00 UTC


README

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.

Requirements

  • Craft CMS 4.0+ or 5.0+
  • PHP 8.3+

Installation

composer require webhubworks/craft-weclapp-api
php craft plugin/install weclapp-api

Configuration

Set 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=true

Note: WECLAPP_API_BASE_URL should 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.

Usage

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.

How it works

  • Plugin::config() registers WeclappService as the api component. Craft instantiates Yii components once per request, giving singleton semantics.
  • WeclappService::getClient() reads WECLAPP_API_BASE_URL and WECLAPP_AUTH_TOKEN via craft\helpers\App::env(), then builds the core client with the CraftHttpClient PSR-18 adapter, caching the result.
  • CraftHttpClient implements Psr\Http\Client\ClientInterface on top of Craft::createGuzzleClient(). It prepends the base URL to each relative endpoint URI and attaches the AuthenticationToken header - the same contract the Laravel wrapper fulfils with Laravel's HTTP client.

License

The MIT License (MIT). Please see License File for more information.