0
私はASP .Net Core 1.1 Web APIを持っています。私のコントローラの一つで、私は2つのアクションを希望:別のものと同じ署名を持つWeb APIアクションを呼び出す
[HttpGet("{userId:int}")]
public async Task<IActionResult> GetUser([FromRoute] int id)
{
return Ok(_context.User.Where(u.Id == id));
}
[HttpGet("{groupId:int}")]
public async Task<IActionResult> GetUsersInGroup([FromRoute] int groupId)
{
return Ok(_context.User.Where(u.GroupId == groupId));
}
どちらのアクションでも、メソッド名を除いて、同じシグネチャを持っています。どうすれば私はどちらかを呼び出すことができますか?
ありがとう...
ありがとうございます。私は示唆したように - 完璧に動作します! – user1900799
好奇心を要して、クエリ文字列を使用できますか?もしそうなら、それは "unreestful"と見なされますか?たとえば、特定のユーザーを取得するには "/ api/users/123"、グループに属するすべてのユーザーを取得するには "/ api/users?groupId = 5" ... – user1900799
これも可能です。 FromQuery属性IIRCを使用してクエリ値を取得できます。私はあなたがユーザーを探しているが検索パラメータを持っているので、それはまともではないとは思わない。もう一つの選択肢は '/ api/users/123'と'/api/groups/123/members'のようなルートを持つことです。あなたとAPIを使用するすべての人には、どんなものであれ使用してください。 – juunas