小编Ric*_* A.的帖子

使用ASP.NET Web API进行自定义路由

假设我有一个嵌套的一对多类型的层次结构数据库,如下所示:

一个地区有许多国家 ; 每个国家都有很多城市 ; 一个城市必须属于唯一的一个国家.

将这些信息抽象为RDBMS是一项微不足道的工作,但(在我看来)最合理的REST端点返回给定区域id的国家列表将如下所示:

HTTP GET http://localhost/Region/3/Countries
Run Code Online (Sandbox Code Playgroud)

默认情况下,.NET的Web API的路由会,充其量,http://localhost/Countries/Region/3http://localhost/Region/Countries/3.

我应该遵循一个合理的命名约定,或者路由是否可以自定义以允许URI采取我喜欢的任何形状?

c# rest namespaces asp.net-mvc-4 asp.net-web-api

12
推荐指数
1
解决办法
2万
查看次数

通过MVC 4 Web API实现"真正的"REST路由

TL; DR摘要:我可以为HTTP GET,PUT和DELETE配置MVC Web API路由吗?

我一直在寻找用私有API替换旧的数据访问层(基于DataSet和TableAdapter的DLL),以便在成功时创建公共API.我已经完成了MVC 4的一些工作来刷新我的前端,并喜欢使用它,因此在深入研究基于WS或WCF的库之前探索"Web API"项目类型似乎是明智的.

初始演示允许我很好地返回XML/JSON,例如:

//service.url/api/Users

...返回用户列表,而特定用户的详细信息可通过以下方式访问:

//service.url/api/Users/99

到目前为止,如此RESTful.但是,为了真正将URI映射到资源,我想将HTTP PUT(新用户)或HTTP DELETE(删除用户)映射到上面列出的URI.在我为这些项目看到的所有示例中,以及Visual Studio中提供的Scaffolds,遵循以下惯例:

//service.url/api/Users/Create

//service.url/api/Users/Delete/99

//service.url/api/Users/Update/99

... 等等.这感觉就像是把这个问题撇在了我的身上,如果将这些问题放在一起,那就太遗憾了!

有关如何最好地接近这个的任何想法?

c# asp.net api rest asp.net-routing

4
推荐指数
1
解决办法
7483
查看次数