2つのGetメソッドを明確にするルートまたはその他の構成の作成に問題があります。サンプルクラスは次のとおりです。
public class UsersController : ApiController
public User[] GetMany([FromUri]int[] id)
{
// returns all users requested by id
}
public User[] GetAll()
{
// returns all users
}
}
myhost/api/users
にマップしたいのですがGetAll
、にmyhost/api/users?id=123
マップしたいのですがGetMany
。
現在、両方のメソッドが両方のURIの可能なアクションとして一致しているため、両方とも500エラーが発生します。
これが私のルートです:
routes.MapHttpRoute(
name: "AllUsersRoute",
routeTemplate: "api/users",
defaults: new { },
constraints: new { }
);
この単純な例では知っていGetMany
ますが、空のIDリストをすべての要求として扱うようにメソッドを変更できますが、より複雑なシナリオではそうではない場合があります。
注:私はMVC 4 Web API、VisualStudio2010を使用しています。