确定运行 ServiceStack 实例的基本 URL 路径的最佳方法是什么?例如,如果我将 ServiceStack 配置为在 web.config 中的“/api”基本 URL 上运行,我如何获取字符串“/api”?我想获取此值以构建任意请求 DTO 的 URL,作为 HATEOAS 样式文档。
例如,如果我有一个SomeRequest
带有[Route("/someRequest")]
属性的请求 DTO,则此请求的完整 URL 将是“/api/someRequest”。ToUrl
扩展方法仅返回基本 URL 下方路径的一部分:
new SomeRequest().ToUrl() // returns "/someRequest"
我还没有找到任何简单的方法来做到这一点。似乎 ServiceStack 没有公开返回“/api”基本路径值的配置属性。使用 ServiceStack 4 可能可以检查 web.config以获取 ServiceStack 处理程序路径,但我无法弄清楚如何使用我们当前的 SS 3 配置来执行此操作。
该Request.GetAbsolutePath()
方法将生成当前请求的完整路径,例如“/api/someRequest”,然后我可能会在此方法和ToUrl()
扩展方法之间进行一些字符串比较以确定基本路径,但这似乎也是一个非常脆弱的解决方案.
有没有更好的方法来获取这个基本 URL?