HTMLの画面レイアウトを持たないエンドポイントを定義します。主に、JSONコンテンツを返すAPIをJavaScriptから呼び出して操作するようなアプリケーションに適しています。
Ajax API タイプのエンドポイントは、サイトマップ上に定義する必要がありません。 common/ や api/ のような開かれた場所に置いてサイト内全体から参照する構成にしたり、他の静的なコンテンツの xxx_files フォルダ内に置いて、特定ページ専用のアプリケーションとして構成することもできます。
コンテンツルートディレクトリ内の任意のパスに、拡張子 .php のファイルを設置します。
コンテンツルートが src_px2/ にあるとき、 src_px2/foo/bar.php を設置した場合、https://yourdomain.com/foo/bar.php がエンドポイントになります。(https://yourdomain.com の部分はお使いの環境によって変わります)
相対パスで設定する場合、PHPのカレントディレクトリ = エントリースクリプト .px_execute.php があるディレクトリを起点として解釈されます。
パブリッシュされる前のプレビュー環境と後のパブリッシュ環境とでは、カレントディレクトリは異なります。
src_px2/foo/bar.php がエンドポイントの場合の、プレビュー環境のカレントディレクトリは src_px2/ です。
パブリッシュ先ディレクトリが dist/ の場合、このコンテンツのパブリッシュ環境でのカレントディレクトリは dist/ になります。
エンドポイントの実行空間では、 $paprika が利用できます。また、Composerが生成する vendor/autoload.php が自動的に読み込まれています。
プレビュー環境では $px も利用できますが、パブリッシュ後の環境には $px が存在しなくなる点に注意してください。
スクリプトの最後は、必ず exit() を実行して終了します。
<?php
header("Content-type: text/json");
$json = array(
"foo" => "bar",
"hello" => "world",
);
echo json_encode($json);
exit();
これに、ブラウザでアクセスしたときの応答は次のような内容になります。
{"foo":"bar","hello":"world"}