Здесь есть несколько смешанных понятий.
- В попытке выполнить REST вы хотите внедрить URI в свои ответы.
- Как лучше всего добиться внедрения URI в ваши ответы. Вы предположили, что механизм «обратной маршрутизации» - это то, как это должно быть сделано.
Стиль REST против сильной типизации
Я хочу здесь прямо указать, что это не означает другого. С одной стороны, вы хотите следовать архитектуре REST (с помощью любой системы, которую вы создаете), а с другой стороны, вы хотите следовать правилам типичной типизации типизированного API, в этом случае для генерации внешних URI ваш API. Это несколько контрастные стили, так как REST не продвигает типизированные API, предпочитая вместо этого привязываться к внешней поверхности URI ваших API-интерфейсов и не типично типизированных Content-Types. В то время как строго типизированный язык будет рекомендовать привязку к типизированному API, например. например, API-интерфейсы с завершающим концом . ServiceStack поддерживает готовые приложения.
Создание строго типизированных URI в ServiceStack
В ServiceStack нет концепции ASP.NET MVC «Обратная схема маршрутизации», но вы можете повторно использовать те же функции, что
{
public int? Age { get; set; }
}
var relativeUrl = new SearchReqstars { Age = 20 }.ToUrl("GET");
var absoluteUrl = EndpointHost.Config.WebHostUrl.CombineWith(relativeUrl);
relativeUrl.Print(); //= /reqstars/aged/20
absoluteUrl.Print(); //= http://www.myhost.com/reqstars/aged/20
Или, если вы просто хотите Абсолютный URL-адрес, вы можете использовать метод расширения ToAbsoluteUri
:
var absoluteUrl = new SearchReqstars { Age = 20 }.ToAbsoluteUri();