7

現在、システム内のすべてのサービスに対して 1 つの大きな C# ServiceStack API プロジェクトがあります。展開とテストを容易にするために、これをすべて個別に実行する小さな API に分割したいと考えています。ここで Mike Hadlowが説明したものとかなり似ています。

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

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

それでもSwaggerと組み合わせることができればボーナスポイント:)

4

2 に答える 2

1

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

ただし、フォールバック ルートのサポートが最近 ServiceStack に追加されました (詳細な実装例を参照してください)。フォールバック ルートを使用すると、認識されていないすべての要求を ServiceStack プロジェクトで列挙することなく、バックエンドにプロキシできます。ただし、Swagger サポートは提供しません。

于 2013-09-03T15:05:37.297 に答える