我正在使用Asp.net web api创建一个api。我有两个方法控制器BookController
:
GetBook(int id)
返回给定ID和GetBook(int userId)
返回给定用户的所有图书如果我打电话给localhost/book/3
,那么调用哪种方法存在歧义。我如何区分这两种方法?
答案 0 :(得分:7)
忘记黑客,这是常识。为了您的用户和开发人员的理智,只需更改路由和方法名称,以明确消除这些不同操作的歧义。一种解决方案可能是Map / user / 3 / books和books / 3分别为GetBooksByUser和GetBooks。使代码和URI更具可读性。
答案 1 :(得分:0)
使用不同的http动词有一种hacky方法
[HttpGet]
public int GetUsers(int i) { return 0; }
[HttpPost]
public int GetBooks(int i) { return 1; }
但我认为使用应该添加控制器或参数。
答案 2 :(得分:0)
我会有2个控制器:书籍和用户。 对于书籍:api / books / 3将带来第3册,对于用户:api / users / 3将带来#3用户。
您是否查看了ASP.NET Web API的基本教程?他们很棒,我跟着他们,这很简单: