我正在研究一直使用.Net远程处理系统进行通信的遗留系统。现在我想编写新的客户端和服务器端web-api代码来执行相同的操作。 这是我正在处理的示例代码:
public SearchResult Search(Condition condition,Sort sort,PageInfo pageInfo)
{
......
}
我希望能够使用相同的签名进行web-api操作,从而获得其Uri的值,因此:
[HttpGet()]
public SearchResult Search([FromUri]Condition condition,[FromUri]Sort sort,[FromUri]PageInfo pageInfo)
{
......
}
以下是我的问题:
答案 0 :(得分:3)
您可以设置Route属性以接受任意数量的参数。
[Route("/api/search/{condition}/{sort}/{pageInfo}")]
[HttpGet]
public HttpResponseMessage Search( string condition, string sort, string pageInfo) {
...
}
这意味着您的网址从中更改
?/搜索条件=试验&安培;排序=第一和安培; pageInfo = 5
到
/搜索/测试/第一/ 5
或者,将Condition,Sort和PageInfo对象捆绑到单个Json类中,并将此对象传递给您的路径:
[Route("/api/search/{SortParams}")]
[HttpGet]
public HttpResponseMessage Search( object sortParams) {
// deserialize sortParams into C# object structure
}