0

私は現在、データ検索に大量の ajax を使用する Web アプリケーションに取り組んでいます。ユーザーが認証されている場合にのみ、データの特定の部分にアクセスできるようにする必要があります。将来的には、他のアプリケーション用の使いやすい API を使用したいと考えていますが、現在 API を使用する唯一の用途は Web アプリケーションを駆動することです。

よりカスタマイズされた従来の API ではなく、REST API を実装する価値はありますか?

私は休息の使用を検討しましたが、これまでのところ次のことがわかりました

  • サーバーが状態を保存しないため、ユーザー認証がより困難になります
  • API は同じリクエストで複数のデータ項目を処理できず、オーバーヘッドが大きくなります。
  • 残りのAPIは、より拡張可能です
4

1 に答える 1

2

さて、あなたは私があなたの質問に答えることになると私が考えることができる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);
于 2012-06-02T14:18:50.063 に答える