確定運行ServiceStack實例的基本URL路徑的最佳方式是什麼?例如,如果我將ServiceStack配置爲在web.config的「/ api」基本URL中運行,那麼如何獲得字符串「/ api」?我想獲得這個值,以便構建任意請求DTO的URL,作爲HATEOAS樣式的文檔。獲取ServiceStack實例的基本URL
例如,如果我的請求DTO SomeRequest
具有[Route("/someRequest")]
屬性,則此請求的完整URL爲「/ api/someRequest」。該ToUrl
擴展方法只返回基地網址下面的路徑的一部分:
new SomeRequest().ToUrl() // returns "/someRequest"
我還沒有找到任何簡單的方法來做到這一點。看起來沒有ServiceStack公開的配置屬性返回「/ api」基本路徑值。 Inspecting web.config以獲得ServiceStack處理程序路徑可能與ServiceStack 4,但我無法弄清楚如何使用我們當前的SS 3配置。
Request.GetAbsolutePath()
方法將產生當前請求的完整路徑,例如, 「/ api/someRequest」,然後我可以在這個和擴展方法ToUrl()
之間做一些字符串比較來確定基本路徑,但是這也是一個非常脆弱的解決方案。
有沒有更好的方式來獲得這個基地的URL?
@Scott關於servicestack-bsd標籤 - 我們將使用它來代替servicestack-v3? –
我確實嘗試過[在meta上討論這個問題](http://meta.stackexchange.com/questions/210765/significant-platform-change-should-a-new-tag-be-created-servicestack)。有人反對v3特定的標籤,以防與小於3的版本有關 - 儘管我認爲它們現在不存在。但BSD似乎並不令人反感。我一直在明確適用於v3的新問題上使用它。 – Scott
無論如何,我認爲我更喜歡servicestack-bsd。很高興知道。 –