Defining a Request

Loading a Request profile

To load a content, simply provide the profile name to the loadXtcRequest() static function from the helper class \Drupal\xtc\XtendedContent\API\Config.

$request = Config::loadXtcRequest($profile['request']);

Plugin definition

This is a Drupal 8 Annotation plugin.

XtcRequest classes

An XtcRequest can be defined by a class extending \Drupal\xtc\XtendedContent\Serve\XtcRequest\AbstractXtcRequest:

XtcRequest is mainly use to override the Client that will be used.

namespace Drupal\xtcelastica\XtendedContent\Serve\XtcRequest;


use Drupal\xtcelastica\XtendedContent\Serve\Client\SearchElasticaClient;

class SearchElasticaXtcRequest extends AbstractElasticaXtcRequest
{
  protected function getElasticaClient(){
    return New SearchElasticaClient($this->profile);
  }

}

XtcClient classes

An XtcClient can be defined by a class extending \Drupal\xtc\XtendedContent\Serve\Client\AbstractClient:

XtcClient is mainly use to define the Methods that will can used.

namespace Drupal\xtcelastica\XtendedContent\Serve\Client;


class GetElasticaClient extends AbstractElasticaClient
{
  public function getElasticaDataByID(){
    $clientParams = $this->getParams();
    $clientParams['id'] = $this->param['q'];
    try {
      $this->content = $this->client->get($clientParams);
      return $this;
    } finally{
      return $this;
    }
  }

  public function getKnownDoc(){
    $clientParams = $this->getParams();
    $queryParams = explode('/', $this->param['q']);
    $clientParams['index'] = $queryParams[0];
    $clientParams['type'] = $queryParams[1];
    $clientParams['id'] = $queryParams[2];
    $this->content = $this->client->get($clientParams);
    return $this;
  }

}

Methods

Methods are defined in:

  • guzzle type profiles
  • Xtc Request for elastica type profiles