1つの自己ホスト型インスタンスXが別のマシン上の別の自己ホスト型インスタンスYにリダイレクトすることによって、オプションで要求を処理する必要があります。インスタンスXはインスタンスYに対して認証されます。ヘッダ "do_redirect"がある場合、リダイレクトを行います。すべてのautowiredサービスでこれを行うことができるメカニズムはありますか?オプションでServiceStack内のすべてのリクエストをリダイレクト
私はすべてのエンドポイントをインターフェイスで拡張し、リクエストヘッダーの代わりにリダイレクトをケースごとに処理することを検討しました。
public interface IRedirectRequest {
string ServerUrl {get; set;}
}
[Route("/api/example", "GET")]
public class ExampleRoute : IRedirectRequest, IReturn<string>
{
//......
}
しかし、私には100ポイント以上が妥当ではありません。 グローバルリクエストフィルタも試しましたが、私はレスポンスdtoに直接書き込むことができないので、私は学びました。
GlobalRequestFilters.Add((request, response, dto) =>
{
if (!string.IsNullOrEmpty(request.Headers["do_redirect"]))
{
var client = new JsonServiceClient(serverYUrl)
{
Credentials = new NetworkCredential(apiKey, "")
};
// redirect here
var redirectResponse = client.Send(dto.GetType(), dto);
// terminate request with data from the other server
response.Dto = redirectResponse;
response.EndRequest();
}
});