rest api設計の問題
itemを検索するapi
パス /items
検索パラメータx、y、z
サンプルコード
fetch(baseURL+"/items?x=1&y=hello&z=100")

検索パラメータが全てandで繋がれる場合、あるいは全てorで繋がれる場合は特に問題ないんですが
andとorの両方を組み合わせての検索をサポートしたい時はどのようにapiを設計すべきでしょうか?

パラメータを一つの論理式で表現し、独自のパーサーで解析する方法を考えたのですが
正直、自分でもスマートなやり方に思えませんし、バグを生み出しそうです
/items?q=(x=1 and (y=hello or z=100)
const w = parseQ(queryStr["q"])
const items = db.exec("select * from items where " + buildWhere(w) )