Utilise the Guzzle HTTP client from within your Craft templates.
This plugin requires Craft CMS 3.0.0 or later.
To install the plugin, follow these instructions.
Open your terminal and go to your Craft project:
cd /path/to/project
Then tell Composer to load the plugin:
composer require jalendport/craft-fetch
In the Control Panel, go to Settings → Plugins and click the “Install” button for Fetch.
This plugin is built to work with the standard Guzzle request options
Parameter | Example value |
---|---|
client |
{ base_uri : 'https://gtmetrix.com', timeout : 10 } |
method |
'POST' |
destination |
'api/0.1/test' |
options |
{ auth : ['username', 'password'] } |
{% set client = {
base_uri : 'https://gtmetrix.com',
timeout : 10
} %}
{% set options = {
auth : ['username', 'password'],
form_params : {
url : 'https://www.google.co.uk'
}
} %}
{% set request = fetch(client, 'POST', 'api/0.1/test', options) %}
{
"statusCode":200,
"reason":"OK",
"body": {
"credits_left":30,
"test_id":"JDHFbrt7",
"poll_state_url":"https:\/\/gtmetrix.com\/api\/0.1\/test\/JDHFbrt7"
}
}
You can fetch the string response by adding an additional parameter of false
like so:
{% set request = fetch(client, 'POST', 'api/0.1/test', options, false) %}
{
"error":true,
"reason":"Client error: `POST https:\/\/gtmetrix.com\/api\/0.1\/test` resulted in a `401 Authorization Required` response:\n{\u0022error\u0022:\u0022Invalid e-mail and\/or API key\u0022}\n\n"
}
Some things to do, and ideas for potential features:
Brought to you by Luke Youell