![](/img/trans.png)
[英]Web API 2.2, Is there an easy way to update the HttpRequestMessage's QueryString in a DelegatingHandler?
[英]easy and robust way to version WEB API in the url?
目標:/ v1 // whatever / path / here。 我對ASP.Net Web API框架還很陌生,一開始我覺得任務很容易。 所以我最終得到了:
public override HttpControllerDescriptor SelectController(HttpRequestMessage request) {
var requestedVersion = ExtractOnlyVersionDigits(request);
var currentVersionControllers =
SelectControllersOfRequestedVersion(requestedVersion);
if (currentVersionControllers.Count() > 0) {
var appropriateController = currentVersionControllers.First(); // yeah, that is stupid, I know that
return new HttpControllerDescriptor(
_configuration,
appropriateController.Name,
appropriateController);
}
經過4個小時的編碼,我意識到除非手動映射它們,否則乘法控制器將無法使用。
所以我的問題是:1)我濫用這個框架嗎? 2)有沒有簡單的方法可以重用現有功能? 3)如果沒有,如何在不聲明[RoutePrefix]或whatisit的情況下,在每個控制器/動作上強制執行我的版本映射?
Scott Hanselman撰寫了一篇很好的文章,介紹ASP.NET的版本控制API
http://www.hanselman.com/blog/ASPNETCoreRESTfulWebAPIVersioningMadeEasy.aspx
也許值得一看,而不是嘗試自己發展? :-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.