2013-06-18 13 views
7

現在、システム内のすべてのサービス用に1つの大きなC#ServiceStack APIプロジェクトがあります。私はこれを分割して、展開とテストを容易にするために、すべて別々に実行される小さなAPIに分割したいと考えています。 Mike Hadlowのhereとよく似ています。APIファサードレイヤーとしてServiceStackを使用

しかし、Nginxを使用する代わりに、リバースプロキシとしてServiceStackを使用したいと思います。この「外部」APIは認証の問題を処理し、非同期HTTP REST呼び出しを使用して、着信要求を関連する内部APIに転送します。

どうすればこのサービスフォワーダを作成できますか?/hello呼び出しを受け付ける内部APIがあるとしましょう。外部APIホスト上でカスタムServiceRunnerを作成しようとすると、私はただの呼び出しを傍受することはできません。それでも特定のルートが存在することが予想されるため、外部APIの呼び出し/ helloは失敗します。私自身のServiceRunnerでそれらを傍受できるようにするには、外部APIホストにdummy/helloルートを作成する必要がありますか? ServiceStackの残りの部分を見ると、よりクリーンな方法があるはずです。

ボーナスポイントそれはまだ闊歩:)

答えて

1

この質問が最初に頼まれた時と組み合わせることができる場合、サービスベースURLのルートから外れワイルドカードのルートを作成するための簡単な方法はありませんでした。私。サービスがルートでホストされていた場合、/ {*}ワイルドカードルートを作成する簡単な方法はありませんでした。サービスが別のポイントでホストされている場合と同じ/ api、/ api/*}ワイルドカードルート。

しかし、Fallback route has recently been added to ServiceStacksee detailed example implementation.)のサポートフォールバックルートを使用して、あなたのServiceStackプロジェクトでそれらを列挙することなく、プロキシのバックエンドへのすべての認識できない要求をすることができます。ただし、スワッガーのサポートは提供しません。

0

ServiceStackをリバースプロキシに簡単に変換できます。Proxy Featurev4.5.10に追加されています。

関連する問題