はじめに
今回は、前回追加した検索用Web APIを少し改良していきます。
実装
Controller/Users/UsersController.csに以下のメソッドを追加してください。
// GET: api/Users [HttpGet] public async Task<ActionResult<IEnumerable<User>>> GetUser([FromQuery(Name = "name")] string[] names) { if (names.Length == 0) { return await _context.User.ToListAsync(); } var users = await _context.User.Where(u => names.Contains(u.name)).ToListAsync(); if (users == null) { return NotFound(); } return users; }
以前、GetUser()メソッドをコメントアウトしていた場合は、それを再利用しても問題ありません。
このAPIは、URLクエリパラメーターでnameの条件を指定し、一致したデータのみを返すようになっています。
動作確認
ブラウザでhttps://localhost:5001/api/Users?name=usernameにアクセスすると、nameがusernameのデータのみが返されます。
ここまでは前回までと同じですが、https://localhost:5001/api/Users?name=username&name=username2にアクセスすると、nameがusernameまたはusername2のデータが返されます。
さらに、https://localhost:5001/api/Usersにアクセスすると、全てのデータが返されます。