您的示例指出了更多的RPC 实现。REST 基于资源。每个资源都有它的方法。获取、更新、插入和删除。如果你打算在你的问题中说什么,你可以在你的 ASP.NET API 中毫无问题地做到这一点:(但请确保这不是REST)
更新(2018 年)
经过一段时间和经验(以及用户对这个旧答案的评论),我意识到说 OP 端点不是 Restfull 是错误的。正如我的示例已经显示的那样,可以轻松完成路线来实现这一目标。有趣的是,我们如何随着时间的推移学习和改变自己的想法/意见。:)
用户控制器
[RoutePrefix("api/v1")]
public class UserController : ApiController
{
[HttpGet]
[Route("users")]
public HttpResponseMessage GetAllUsers()
{
...
}
[HttpGet]
[Route("users/{id:int}")]
public HttpResponseMessage GetUserByID(int id)
{
...
}
[HttpGet]
[Route("users/{name:string}")]
public HttpResponseMessage GetUserByName(string name)
{
...
}
[HttpDelete]
public HttpResponseMessage DeleteAllUsers()
{
...
}
[HttpDelete]
[Route("users/{id:int}")]
public HttpResponseMessage DeleteUserByID(int id)
{
...
}
}
使用 HttpAttributes,您可以拥有任意数量的 HttpDelete。只需将属性放在操作的顶部,您就可以开始了。它还强制只能使用该 HTTP 动词调用方法。因此,在上面的 Delete 中,如果您使用 GET 动词进行调用,您将一无所获。(找不到动作)
如果您愿意,您还可以明确地为您的操作提供自定义路线。例如,您对 GetUserByID 的调用将是:
获取:http://localhost:2020/api/v1/users/1