Метод withToken
Метод withToken применяется к HTTP-клиенту Laravel и добавляет заголовок Authorization с Bearer-токеном в запрос. Первым параметром передаётся сам токен, вторым необязательным параметром - имя заголовка (по умолчанию Authorization). Метод возвращает тот же экземпляр HTTP-клиента, что позволяет использовать цепочки вызовов.
Синтаксис
<?php
use Illuminate\Support\Facades\Http;
Http::withToken($token, $headerName);
?>
Пример
Давайте отправим GET-запрос к защищённому API с передачей Bearer-токена:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Http;
class ArticleController extends Controller
{
public function index()
{
$token = 'your-api-token-here';
$res = Http::withToken($token)
->get('https://api.example.com/articles');
return $res->json();
}
}
?>
Результат выполнения кода:
["article 1", "article 2", "article 3"]
Пример
Отправим POST-запрос с токеном и JSON-данными:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Http;
class ArticleController extends Controller
{
public function store()
{
$token = 'your-api-token-here';
$res = Http::withToken($token)
->post('https://api.example.com/articles', [
'title' => 'New article',
'content' => 'Article content'
]);
if ($res->successful()) {
echo "Article created successfully";
}
}
}
?>
Результат выполнения кода:
"Article created successfully"
Пример
Используем метод с кастомным именем заголовка:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Http;
class ArticleController extends Controller
{
public function show()
{
$token = 'your-api-token-here';
$res = Http::withToken($token, 'X-API-TOKEN')
->get('https://api.example.com/articles/1');
if ($res->successful()) {
$data = $res->json();
echo $data['title'];
}
}
}
?>
Результат выполнения кода:
"article 1"
Пример
Комбинируем метод withToken с другими методами HTTP-клиента:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Http;
class ArticleController extends Controller
{
public function update()
{
$token = 'your-api-token-here';
$res = Http::withToken($token)
->withHeaders([
'X-Custom-Header' => 'custom-value'
])
->timeout(30)
->put('https://api.example.com/articles/1', [
'title' => 'Updated article'
]);
return $res->json();
}
}
?>
Результат выполнения кода:
["title" => "Updated article", "content" => "Article content"]
Смотрите также
-
метод
withHeaders,
который добавляет произвольные заголовки к запросу -
метод
withBasicAuth,
который добавляет Basic-аутентификацию -
метод
acceptJson,
который устанавливает заголовок Accept: application/json -
метод
json,
который парсит JSON-ответ от API