1. ホーム
  2. php

[解決済み] PHPでREST APIを呼び出す

2022-03-14 01:03:09

質問

クライアントからREST APIを渡されたので、PHPで呼び出す必要があります。しかし、実のところ、APIとともに提供されたドキュメントは非常に限られており、サービスを呼び出す方法がよくわかりません。

ググってみたのですが、出てきたのはすでに期限切れのヤフーのチュートリアルのみで、サービスの呼び出し方がわかりません。ヘッダーや深い情報には触れていません。

REST APIの呼び出し方周辺のまともな情報、もしくはそれに関するドキュメントはないのでしょうか?W3schoolsでも、SOAPメソッドしか説明されていないので。PHPでREST APIを作るには、どのような選択肢があるのでしょうか?

どのように解決するのですか?

PHP で任意の REST API にアクセスすることができます。 cURL エクステンションです。しかし、APIドキュメント(メソッド、パラメータなど)はクライアントが提供する必要があります!

// Method: POST, PUT, GET etc
// Data: array("param" => "value") ==> index.php?param=value

function CallAPI($method, $url, $data = false)
{
    $curl = curl_init();

    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);

            if ($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if ($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }

    // Optional Authentication:
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_USERPWD, "username:password");

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($curl);

    curl_close($curl);

    return $result;
}