定義する検索クエリ言語を使用してユーザーがクエリを渡すことができるRESTAPIを設計しています。
この言語では、eq、ne、gt、lt(等しい、等しくない、より大きい、より小さい)などの多数の演算子を使用できます。
この言語では、グループ化と論理演算子ANDおよびORを使用できます。
たとえば、企業に関するクエリは次のようになります。
/ api / Companies?q =(CompanyNameeqMicrosoftまたはCompanyNameeqApple)およびState eq California
したがって、これにより、会社名が「Microsoft」または「Apple」に等しく、州がカリフォルニアであるすべての会社がわかります。
したがって、APIを作成しているシステムが非常に柔軟であり、ほとんどすべての文字をフィールド値に挿入できるという事実を除いて、これはすべて正常に機能します。さらに、カスタムフィールドもサポートする必要があり、フィールド名に特殊文字を含めることができます。
当初、私の主な関心事は括弧を含むフィールドでした。このクエリをSQLServerクエリに変換します。フィールド値の括弧と、グループ化を目的とした括弧を混同しないようにする方法が必要です。私の2番目の考えは、フィールド値を強制的に引用することでしたが、これも同様の問題を引き起こすと思います。
また、HTMLエンコーディングを含む単純なアプローチがあるかもしれないと考えていましたが、それがどのように機能するかを正確に理解することはできません。
私が探しているのは、そのような柔軟なデータを使用してREST検索クエリを処理するためのアドバイスや合理的なアプローチの例です。