私の Web アプリケーションは、外部システムからトリガーされます。アプリの 1 つの要求パスを呼び出しますが、要求の種類ごとに異なるクエリ パラメーターを使用します。
パラメータの 1 つは、実行する内容を定義する「アクション」です。残りのパラメーターは「アクション」に依存します。
したがって、次のようなリクエストパラメーターを取得できます。
action=sayHello&user=Joe
action=newUser&name=Joe&address=xxx
action=resetPassword
...
プレイ用にルートファイルで同様にエンコードできるようにしたいので、クエリパラメーターベースのルーティングと、可能な限り他のパラメーターの検証を行います。
私が代わりに持っているのは、多くのオプションのパラメーターを使用して、これらすべての可能性に対応する 1 つのルーティングです。ディスパッチとパラメーターの検証を行うために、アクション処理は大きなパターン マッチから始まります。
SO をグーグルで調べてチェックすると、パラメータが何らかの形でリクエスト パスにエンコードされている多くのサンプルがポップアップ表示されたので、複数のパスが同じアクションにルーティングされますが、1 つのパスが異なるアクションにルーティングされるようにしたいと思います。
私の同僚の 1 人は、「アクション」パラメーターに基づいてリダイレクトするだけの「ディスパッチャー」アクションを 1 つ持つことができると言いました。現在のソリューションよりも少し構造化されていますが、次のアクションに選択的に渡す必要があるオプションのパラメーターの長いリストがなくなるわけではないため、さらに優れたソリューションを知っていることを願っています:-)
ところで、私のアプリを呼び出す外部システムは別の会社によって開発されており、私はこの設計に影響を与えていないため、アプリのトリガー方法を変更することはできません。