パラメータの動的セットによってクエリできるリソースを扱う RESTful API を構築する場合、データベースへのクエリを構築する最良の方法は何ですか?
リソースが本で、可能なパラメーターは次のとおりです。
author, year, publisher, pages, rating
また、次のような任意の数のパラメーターと任意の組み合わせを使用してクエリを作成できます。
/books?rating=2
また
/books?author=james&year=2001&rating=4
また
/books?year=2010&publisher=greatbooks&pages=100&rating=5
この動的なパラメータ セットをデータベース クエリに変換する良い方法は何ですか?
次のような if else ステートメントを大量に作成します。
if( isset($_GET['rating'] && isset($_GET['author']) ) {
//Do query based on these parameters here...
}
また
if( isset($_GET['author'] && isset($_GET['year']) && isset($_GET['publisher']) ) {
//Do query based on these parameters here...
}
等等等…
または、すべての変数を設定してから、次のようにクエリで「=」の代わりに LIKE を使用します。
if(!empty($_GET['author'])) {
$author = $_GET['author'];
} else {
$author = '%';
}
その後
SELECT * FROM books WHERE author LIKE $author ... and so on
または、これを処理する他の方法はありますか?