Webサービスは、標準のHTTPプロトコルに基づいてXMLまたはJSON形式を使用してデータを提供するネットワークを介して通信するソフトウェアシステムです。 Webサービスにより、HTTPインターフェイスを提供することにより、異なるシステム間のデータ交換と関数呼び出しが可能になります。一般的なWebサービスには、Restful API、SOAP、XML-RPCなどが含まれます。
SOAP(Simple Object Access Protocol)は、XMLベースの通信プロトコルです。 XML形式を介してメッセージをカプセル化して、異なるシステム間のリモートコールを実現します。 PHPでは、SOAP拡張機能を使用してWebサービスを開発および使用できます。
Linux Systemsでは、次のコマンドを使用してSOAP拡張子をインストールできます。
sudo apt-get install php-soap
WindowsでPHP.iniファイルを開き、次の行を見つけてコメントを削除します。
<span class="fun">拡張=石鹸</span>
次に、PHPサービスを再起動します。
PHPでは、Soapserverクラスを使用してWebサービスを作成できます。以下は、「計算機」と呼ばれるWebサービスの例です。これは、2つの数字を追加する機能を実装するための追加方法を提供します。
<?php
class Calculator {
public function add($a, $b) {
return $a + $b;
}
}
$server = new SoapServer(null, array('uri' => 'http://localhost/calculator'));
$server->setClass('Calculator');
$server->handle();
?>
PHPでは、SoapClientクラスを介してWebサービスにアクセスします。 SOAP Webサービスにアクセスする例は次のとおりです。
<?php
$client = new SoapClient(null, array('uri' => 'http://localhost/calculator'));
$result = $client->__soapCall('add', array(2, 3));
echo "Result: " . $result;
?>
Restful APIは、HTTPプロトコルに基づく軽量通信方法であり、URLとHTTP動詞を使用してデータを渡し、関数を通話します。 PHPでは、Slim Frameworkを使用してRestful APIを開発できます。
Composerを介してSlim Frameworkをインストールし、次のコマンドを実行できます。
<span class="fun">作曲家にはスリム/スリムが必要です</span>
以下は、Slim Frameworkを使用してRESTFUL APIを作成し、2つの数値を追加する機能を実装するための投稿リクエストをサポートする「追加」ルートを提供する例です。
<?php
require 'vendor/autoload.php';
$app = new \Slim\App();
$app->post('/add', function ($request, $response, $args) {
$data = $request->getParsedBody();
$a = $data['a'];
$b = $data['b'];
$result = $a + $b;
return $response->withJson(['result' => $result]);
});
$app->run();
?>
PHPでは、Restful APIは、Curlライブラリを介してHTTPリクエストを送信することにより呼び出されます。以下は、Curlを使用してAPIを呼び出す例です。
<?php
$data = array('a' => 2, 'b' => 3);
$options = array(
CURLOPT_URL => 'http://localhost/add',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($data)
);
$curl = curl_init();
curl_setopt_array($curl, $options);
$result = curl_exec($curl);
curl_close($curl);
$result = json_decode($result, true);
echo "Result: " . $result['result'];
?>
この記事では、SOAPおよびRESTFUL APIテクノロジーを使用してWebサービスを開発および使用して、PHPアプリケーションでのリモートコールとデータ交換を実現する方法を紹介します。これらの方法により、システムの柔軟性と相互運用性を向上させることができ、さまざまなアプリケーション間の通信とコラボレーションを促進できます。