iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0
自我挑戰組

PHP 沿途的風景系列 第 12

[Day 12] [Guzzle] 怎麼從程式內部 call api?

  • 分享至 

  • xImage
  •  

[Guzzle] 怎麼從程式內部 call api?

經過 安裝 PHP 套件 guzzle 概述後,我們知道 Guzzle 是 PHP HTTP client library,本文將介紹用『 Guzzle 來完成 Call API』。

Call API - GET

先前的 stream 和 cURL 在輸出的 response 時,一些 function 已經內建將 body 的資訊轉為 string 格式。guzzle 要將 body 輸出轉為 string 格式時,需加上 (string) 將 response 轉換為 string 格式,範例如下:

<?php
require __DIR__ . "/vendor/autoload.php";
use GuzzleHttp\Client;

// Create and send an HTTP request.
$response = $client->request("GET", "https://jsonplaceholder.typicode.com/posts/1");

// 輸出 body 轉換為 string 格式
var_dump((string) $response->getBody());

/* (string)
 * {
 *   "userId": 1,  
 *   "id": 1,
 *   "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
 *   "body": "quia et suscipit\nsuscipit recusa..."
 * }
 */ 

Magic methods

Guzzle 的 class Client 除了通用方法 request() 之外,Guzzle 提供 Magic methods,便於開發者更容易的發出同步請求,Magic methods 如下:

Magic methods 用法
get() $client->get("http://httpbin.org/get");
delete() $client->delete("http://httpbin.org/get");
patch() $client->patch("http://httpbin.org/delete/get");
post() $client->post("http://httpbin.org/delete/get");
put() $client->put("http://httpbin.org/delete/get");

結語

Guzzle 各個 Magic methods 底層,是由 request(string $method, $uri = '', array $options = []) 組成,因此,request() 和 Magic methods 擇其一使用即可。Guzzle 其他功能,請參考 Guzzle Quickstart

p.s Magic methods 寫在路徑 vendor/guzzlehttp/guzzle/src/ClientTrait.php


參考文章

1 安裝 PHP 套件 guzzle
2 Using Responses
3 Magic methods
4 Guzzle Quickstart


上一篇
[Day 11] 安裝 PHP 套件 guzzle
下一篇
[Day 13] 從程式內部 call api,以 PATCH 為例
系列文
PHP 沿途的風景30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言