Webアプリケーションを開発するとき、RESTFUL APIは、柔軟で拡張可能なインターフェイスを提供するために標準のHTTPプロトコルに従って、広く使用されているアーキテクチャスタイルになりました。 HTTP応答ヘッダーを正しく使用することにより、開発者はインターフェイスの動作と応答の内容を制御し、インターフェイスのインタラクティブ性とセキュリティを強化できます。
PHPはHeader()関数を提供して応答ヘッダーを設定し、開発者がAPIの応答コンテンツ、ステータスコード、キャッシュコントロールなどを柔軟に管理できるようにします。この記事では、 Header()関数を使用してREST Ful APIの応答ヘッダーをシミュレートして、より柔軟なインターフェイス相互作用を実現します。
PHPでは、 Header()関数を使用して、生のHTTPヘッダー情報を送信できます。基本的な構文は次のとおりです。
header('Header-Name: Header-Value');
たとえば、標準のコンテンツタイプのヘッダー情報を返すには、次のように設定できます。
header('Content-Type: application/json');
RESTFUL API応答をシミュレートする場合、通常、JSON形式と対応するHTTPステータスコードでデータを返す必要があります。したがって、次の応答ヘッダーを設定できます。
header('Content-Type: application/json');
header('HTTP/1.1 200 OK');
RESTFUL APIでは、応答データは通常JSON形式です。返されたデータ型をクライアントに通知するには、コンテンツタイプのヘッダーを設定できます。
header('Content-Type: application/json');
JSON形式で応答データを返したい場合は、通常、次のコードを使用できます。
$data = ['message' => '成功', 'code' => 200];
echo json_encode($data);
RESTFUL APIの応答ステータスコードは非常に重要であり、リクエストの処理結果を示しています。たとえば、 200 OKは要求が成功することを意味し、 404が見つかったことは、要求されたリソースが存在しないことを意味し、 500内部サーバーエラーはサーバーでエラーが発生したことを意味します。
header()関数を使用して、応答ステータスコードを設定します。
header('HTTP/1.1 404 Not Found');
他の一般的なステータスコードをシミュレートする必要がある場合は、状況に従ってそれらを設定できます。
header('HTTP/1.1 201 Created');
場合によっては、APIの応答には、クライアントを制御するためのキャッシュヘッダーまたは応答をキャッシュするためのプロキシが必要です。一般的なキャッシュコントロールヘッダーには、キャッシュコントロールが含まれ、期限切れです。
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Expires: 0');
これらのヘッダーは、クライアントに応答データをキャッシュして、毎回データを再クエストしないように指示します。
異なるドメイン名を持つクライアントがAPIを呼び出す必要がある場合、クロスドメインリソース共有(CORS)応答ヘッダーを構成する必要があります。 Access-Control-Allow-Originヘッダーを使用して、指定されたドメインがAPIにアクセスできるようにすることができます。
header('Access-Control-Allow-Origin: https://m66.net');
ドメイン名がAPIにアクセスできるようにする場合は、WildCard文字*を使用できます。
header('Access-Control-Allow-Origin: *');
RESTFUL APIは、必要に応じてカスタム応答ヘッダーを設定することもできます。 Header()関数を介して、カスタムヘッダー情報を送信できます。
header('X-Request-Id: 12345');
header('X-Rate-Limit-Limit: 100');
これらのカスタムヘッダーは、要求されたID、レート制限などの追加情報を提供するために使用できます。
Header()関数を使用して単純なRESTFUL API応答をシミュレートする方法を示す完全なPHP例を以下に示します。