0
我想使用的WebAPI暴露分級鍵值數據結構是這樣的:無界分層路由
http://www.whatever.com/api/root/level1/level2/leveln
這是可能的的WebAPI?如果是這樣,怎麼樣?
我想使用的WebAPI暴露分級鍵值數據結構是這樣的:無界分層路由
http://www.whatever.com/api/root/level1/level2/leveln
這是可能的的WebAPI?如果是這樣,怎麼樣?
的WebAPI可以公開幾乎任何URI你喜歡的 - 它歸結爲如何配置路由,以及你如何解釋方法的參數,一旦他們已經從URL中提取。
要映射一個無界層次路由,我會將/api/root/
之後的所有內容映射到一個變量,然後在控制器的自定義邏輯或專用服務中明確地解析和解釋該方法。
訣竅到具有匹配包括斜線是在開始添加*
:
config.Routes.MapHttpRoute(
name: "KeyValueHierarchy",
routeTemplate: "api/test/root/{*keyLevels}",
defaults: new { controller = "Hierarchy" }
);
在控制器然後
public class HierarchyController : ApiController
{
public IHttpActionResult Get(string keyLevels)
{
var keys = keyLevels.Split('/');
// ... do stuff with your keys
return Ok(keys);
}
}
快速測試:
GET /api/test/root/foo/5/bar/10/foobar
返回:
<ArrayOfstring xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<string>foo</string>
<string>5</string>
<string>bar</string>
<string>10</string>
<string>foobar</string>
</ArrayOfstring>
是可能的:) –
謝謝,非常有幫助:D(問題編輯) – ConditionRacer