ServiceStack インスタンスが実行されているベース URL パスを特定する最善の方法は何ですか? たとえば、ServiceStack を web.config の "/api" ベース URL で実行するように構成した場合、文字列 "/api" を取得するにはどうすればよいですか? HATEOAS スタイルのドキュメントとして、任意のリクエスト DTO の URL を構築するために、この値を取得したいと考えています。
たとえばSomeRequest
、[Route("/someRequest")]
属性を持つリクエスト DTO がある場合、このリクエストの完全な URL は「/api/someRequest」になります。拡張メソッドは、ベース URL の下のパスのToUrl
一部のみを返します。
new SomeRequest().ToUrl() // returns "/someRequest"
これを行う簡単な方法は見つかりませんでした。「/api」ベース パス値を返す ServiceStack によって公開される構成プロパティはないようです。web.configを調べて ServiceStack ハンドラー パスを取得することは、ServiceStack 4 で可能かもしれませんが、現在の SS 3 構成でそれを行う方法を理解するのに苦労しています。
このRequest.GetAbsolutePath()
メソッドは、現在のリクエストのフル パス ("/api/someRequest" など) を生成します。次に、これとToUrl()
拡張メソッドの間で文字列を比較して、ベース パスを特定することもできますが、これも非常に脆弱なソリューションのように思えます。 .
このベース URL を取得するより良い方法はありますか?