1

Slim PHP を使用して API をセットアップしました。すべてのイベントを取得するための基本的な GET リクエストを次に示します。Backbone Paginator を使用してこれをページ付けしたいと思います。私の主な質問は... バックボーンのページ分割されたコレクションからパラメーターを受け入れるように SELECT ステートメントを変更するにはどうすればよいですか? ページネーターからこれらのリクエストを受け取るように API をセットアップする方法を詳しく説明しているものはないようです。この投稿は私ができる限り近いものですが、データベースから実際に要求するものについては何も述べていません. 「このパラメータが存在する場合、MySQL ステートメントに追加しますか?」というのは基本的なことですか? もっと良い方法があるはずです。

$app->get('/events', 'getEvents');


function getEvents() {
    // what do I do with the $sort variable?
    $sort = $app->request()->params('sort');
    $sql = "SELECT * FROM events";

    try {
        $db = getConnection();
        $stmt = $db->query($sql);  
        $events = $stmt->fetchAll(PDO::FETCH_OBJ);
        $db = null;
        echo json_encode($events);
    } catch(PDOException $e) {
        echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}
4

1 に答える 1

1

私は PHP 開発者ではありませんが、クエリにページングを実装する必要があります。

MySQL データ - ページングを実装する最良の方法? を参照してください。これに関する情報については。

リンクした投稿に関しては、送信者の方法に従ってクエリを定義できます。これには制限が含まれます。

// where $results is the number of results to return
$sql = "select * FROM events ORDER BY " . $sort . " LIMIT " . $page . " , $results";

存在する/存在しないパラメーターについては、いつでもデフォルトを設定できます。そのため、ページがリクエストされていない場合は最初に配信し、並べ替えがリクエストされていない場合は、アプリにとって意味のある順序で並べ替えます。余分なパラメーターが存在する場合は、それらを破棄できます。

非常に厳密な API が必要な場合は、リクエストがエンドポイントの仕様と一致しない場合、いつでもエラーを返すことができます

于 2013-06-28T03:45:59.853 に答える