0
我使用WEB API創建了一個Web服務。ASP .NET Web API中的路由
我使用這個路由配置
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
而且我的解決方案包括兩個控制器(ProductController
和DetailController
)
所以,當我想調用指GetDetails方法WS(位於裏面DetailController)我必須使用這樣的URL:
http://localhost/api/Details/GetDetails/?id=4
有沒有一種方法可以使用,對於相同的請求,這個URL取而代之的是:
http://localhost/api/Product/GetDetails/?id=4
讓DetailController中的GetDetails方法?
你能解釋一下使用查詢參數而不是url本身來表示資源(即'http:// localhost/api/Details/4')的原因。它似乎不是「RESTful」。 –
你說得對。在這種情況下使用'/ {id}'更漂亮。但這並不意味着查詢字符串參數不是RESTful。通常當我有可選參數時,我將它們作爲查詢字符串參數傳遞。這通常在需要採用多個參數的GET請求中有意義。但我同意你的看法,標識資源的標識符在路徑部分中傳遞的更好。 –
不,我瞭解查詢參數的用例。它看起來像是id(在這種情況下)是爲了獨特地表示資源。 –