さて、あなたは私があなたの質問に答えることになると私が考えることができる3つの最良の理由を与えました。それはあなただけがそれらの質問に与えることができる答えに帰着します。
私のアプローチは、各クライアントサイトに「彼らの」もののための「ミニ」APIと、「彼らだけ」を超えた共通の、または重要な機能のリポジトリとなる「メイン」APIを用意することでした。それらはすべて同じ基盤上に構築されているため、必要に応じて切り替えたり交換したりするのは非常に簡単です。
また、結果をjsonとしてエンコードすることで、1回の呼び出しで非常に多くのデータ項目を返すことができます(必要に応じて、列のテーブル全体を一度に返すことができます)。彼らが誰をやっているかを見たいのなら、LuracastによるReSTLERを見ることをお勧めします-それは良い出発点です。
非常に単純な複数値の戻りを示す編集:
if(is_array($result)) {
echo json_encode(array_values($result));
}else{
echo json_encode($result);
}
Luracast ReSTLerを使用すると、このコードはPHPInfoに含まれるすべてのものを1回の呼び出しで返します。
ob_start();
phpinfo($module);
$info_arr = array();
$info_lines = explode("\n", strip_tags(ob_get_clean(), "<tr><td><h2>"));
$cat = "General";
foreach($info_lines as $line)
{
preg_match("~<h2>(.*)</h2>~", $line, $title) ? $cat = $title[1] : null;
if(preg_match("~<tr><td[^>]+>([^<]*)</td><td[^>]+>([^<]*)</td></tr>~", $line, $val))
{
$info_arr[$cat][$val[1]] = $val[2];
}
elseif(preg_match("~<tr><td[^>]+>([^<]*)</td><td[^>]+>([^<]*)</td><td[^>]+>([^<]*)</td></tr>~", $line, $val))
{
$info_arr[$cat][$val[1]] = array("local" => $val[2], "master" => $val[3]);
}
}
return Utilities::arrayToObject($info_arr);