私は、テナント名は、すべてのURL内に含まれているマルチテナントアプリケーションを構築しています。例えば、テナントのすべての現在のユーザーの「テスト」を取得するためのルートは次のようになります/ui/api/Test/users
。私は現在働いているアプリケーションの一部は、他のアプリケーションの転送を要求、それはクライアントが行く-間として作用させること、私のDBサービスをサポートするクライアントです。
これが起こっているところあなたはおそらく見ることができます。私は自分のルートを転送するZuulを使用していますが、すべてのルートは、このように転送すべきではありません。時には、フロントエンドで始まる要求送信します/ui/api/
データベース要求ではないことを。のは、このように、これらのルックスのいずれかを言ってみましょう:/ui/api/Test/Foo
。私は、パターン収まる任意のURL転送できるように、私のZuulルートを設定することがしたい/ui/api/*/users
すべての人を転送せず(*は任意の文字列です)。
私はもちろん、単純に使用しようとしている/ui/api/*/users
が、これは任意の経路と一致しません。私はそれを試していないが、私はそれは単に解釈がURLの実際の一環として*と仮定します。私の現在の回避策は一致している/ui/api/**
と、その後追加**/Foo
zuul.ignoredPatternsに。これは動作しますが、私は転送されないために必要であることが、新しいエンドポイントは、ここで追加する必要がありますから、supoptimalです。クライアントは様々なプロジェクトで使用されることを意図されているので、転送されたルートは変更しますが、あってはならないものではありません。これにより実行可能な解決策ではないプロジェクトごとに設定することはできませんと。
これは私のapplication.propertiesの関連部分は次のようになります。
zuul.ignoredPatterns = /**/login,/**/executeJobUrl,/**/createExecuteJobUrl
zuul.routes.user-manager.path = /ui/api/**
zuul.routes.user-manager.url = http://localhost:0/eis-user-manager/ui/api
zuul.routes.user-manager.stripPrefix = true
ワーキング溶液は使用することがある**
パターンで。だから、だろう
/ui/api/**/users
私からアイデアを得たここに。テストと解答を作ることを示唆しているにもアレックスEggersの功績によるものです。