using HttpClientStudy.Model; using HttpClientStudy.Service; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace HttpClientStudy.WebApp.Controllers { /// /// 普通(简单) 控制器 /// [Route("api/[controller]/[action]")] [ApiController] public class NormalController : ControllerBase { private ILogger _logger; private AccountService _accountService; /// /// 构造 /// public NormalController(ILogger logger, AccountService accountService) { _logger = logger; _accountService = accountService; } /// /// 获取所有账号 /// (无参数) /// /// [HttpGet] public IActionResult GetAllAccounts() { var accounts = _accountService.GetAllAccounts(); var reslut = BaseResultUtil.Success(accounts); return Ok(reslut); } /// /// 获取所有账号 /// (默认方式参数) /// /// [HttpGet] public IActionResult GetAccount(int id) { var accounts = _accountService.GetAllAccounts(); var account = accounts.FirstOrDefault(a => a.Id == id); var result = BaseResultUtil.Success(account); return Ok(result); } /// /// 获取所有账号 /// (路由参数) /// /// [HttpGet] [Route("{name}")] public IActionResult GetAccount([FromRoute] string name) { var accounts = _accountService.GetAllAccounts(); var account = accounts.FirstOrDefault(a => a.Name == name); var result = BaseResultUtil.Success(accounts); return Ok(result); } /// /// 获取所有账号 /// (查询参数) /// /// [HttpGet] public IActionResult GetAccountByRole([FromQuery]string role) { var accounts = _accountService.GetAllAccounts(); accounts = accounts.Where(accounts => accounts.Role == role).ToList(); var result = BaseResultUtil.Success(accounts); return Ok(result); } /// /// 获取所有账号 /// (服务注入参数) /// /// [HttpGet] public IActionResult GetAccount([FromServices] Account account) { var accounts = _accountService.GetAllAccounts(); accounts = accounts.Where(accounts => accounts.Role == role).ToList(); var result = BaseResultUtil.Success(accounts); return Ok(result); } /// /// Put请求 示例 /// /// [HttpPut] public IActionResult PutDemo(int id) { var accounts = _accountService.GetAllAccounts(); var account = accounts.FirstOrDefault(a => a.Id == id); var result = BaseResultUtil.Success(account); return Ok(result); } /// /// Head请求 示例 /// /// [HttpHead] public IActionResult HeadDemo(int id) { var accounts = _accountService.GetAllAccounts(); var account = accounts.FirstOrDefault(a => a.Id == id); var result = BaseResultUtil.Success(account); return Ok(result); } } }