Skip to content

webhubworks/craft-weclapp-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weclapp API for Craft CMS

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages