class Http in Migrate Plus 8.4
Same name and namespace in other branches
- 8.5 src/Plugin/migrate_plus/data_fetcher/Http.php \Drupal\migrate_plus\Plugin\migrate_plus\data_fetcher\Http
- 8 src/Plugin/migrate_plus/data_fetcher/Http.php \Drupal\migrate_plus\Plugin\migrate_plus\data_fetcher\Http
- 8.2 src/Plugin/migrate_plus/data_fetcher/Http.php \Drupal\migrate_plus\Plugin\migrate_plus\data_fetcher\Http
- 8.3 src/Plugin/migrate_plus/data_fetcher/Http.php \Drupal\migrate_plus\Plugin\migrate_plus\data_fetcher\Http
Retrieve data over an HTTP connection for migration.
Example:
source:
plugin: url
data_fetcher_plugin: http
headers:
Accept: application/json
User-Agent: Internet Explorer 6
Authorization-Key: secret
Arbitrary-Header: foobarbaz
Plugin annotation
@DataFetcher(
id = "http",
title = @Translation("HTTP")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\migrate_plus\DataFetcherPluginBase implements DataFetcherPluginInterface
- class \Drupal\migrate_plus\Plugin\migrate_plus\data_fetcher\Http implements ContainerFactoryPluginInterface
- class \Drupal\migrate_plus\DataFetcherPluginBase implements DataFetcherPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Http
2 files declare their use of Http
- HttpTest.php in tests/
src/ Unit/ data_fetcher/ HttpTest.php - PHPUnit tests for the Migrate Plus Http 'data fetcher' plugin.
- HttpTest.php in tests/
src/ Kernel/ Plugin/ migrate_plus/ data_fetcher/ HttpTest.php
File
- src/
Plugin/ migrate_plus/ data_fetcher/ Http.php, line 31
Namespace
Drupal\migrate_plus\Plugin\migrate_plus\data_fetcherView source
class Http extends DataFetcherPluginBase implements ContainerFactoryPluginInterface {
/**
* The HTTP client.
*
* @var \GuzzleHttp\Client
*/
protected $httpClient;
/**
* The request headers.
*
* @var array
*/
protected $headers = [];
/**
* The data retrieval client.
*
* @var \Drupal\migrate_plus\AuthenticationPluginInterface
*/
protected $authenticationPlugin;
/**
* {@inheritdoc}
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->httpClient = \Drupal::httpClient();
// Ensure there is a 'headers' key in the configuration.
$configuration += [
'headers' => [],
];
$this
->setRequestHeaders($configuration['headers']);
}
/**
* Returns the initialized authentication plugin.
*
* @return \Drupal\migrate_plus\AuthenticationPluginInterface
* The authentication plugin.
*/
public function getAuthenticationPlugin() {
if (!isset($this->authenticationPlugin)) {
$this->authenticationPlugin = \Drupal::service('plugin.manager.migrate_plus.authentication')
->createInstance($this->configuration['authentication']['plugin'], $this->configuration['authentication']);
}
return $this->authenticationPlugin;
}
/**
* {@inheritdoc}
*/
public function setRequestHeaders(array $headers) {
$this->headers = $headers;
}
/**
* {@inheritdoc}
*/
public function getRequestHeaders() {
return !empty($this->headers) ? $this->headers : [];
}
/**
* {@inheritdoc}
*/
public function getResponse($url) {
try {
$options = [
'headers' => $this
->getRequestHeaders(),
];
if (!empty($this->configuration['authentication'])) {
$options = array_merge($options, $this
->getAuthenticationPlugin()
->getAuthenticationOptions());
}
$response = $this->httpClient
->get($url, $options);
if (empty($response)) {
throw new MigrateException('No response at ' . $url . '.');
}
} catch (RequestException $e) {
throw new MigrateException('Error message: ' . $e
->getMessage() . ' at ' . $url . '.');
}
return $response;
}
/**
* {@inheritdoc}
*/
public function getResponseContent($url) {
$response = $this
->getResponse($url);
return $response
->getBody();
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DataFetcherPluginBase:: |
public static | function | ||
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
Http:: |
protected | property | The data retrieval client. | |
Http:: |
protected | property | The request headers. | |
Http:: |
protected | property | The HTTP client. | |
Http:: |
public | function | Returns the initialized authentication plugin. | 1 |
Http:: |
public | function |
Get the currently set request headers. Overrides DataFetcherPluginInterface:: |
|
Http:: |
public | function |
Return Http Response object for a given url. Overrides DataFetcherPluginInterface:: |
|
Http:: |
public | function |
Return content. Overrides DataFetcherPluginInterface:: |
|
Http:: |
public | function |
Set the client headers. Overrides DataFetcherPluginInterface:: |
|
Http:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
1 |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |