新建項目 類型:ASP.NET Core Web API
Web API 控制器通常應派生自 ControllerBase 而不是 Controller。 Controller 派生自 ControllerBase,並添加對視圖的支持,因此它用於處理 Web 頁面,而不是 Web API 請求。 如果同一控制器必須支持視圖和 Web API,則派生自 Controller。
API接口返回值類型:https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.aspnetcore.mvc?view=aspnetcore-7.0
示例:
using Microsoft.AspNetCore.Mvc; using NetCoreWebApiTest.Common; namespace NetCoreWebApiTest.Controllers { [ApiController] [Route("[controller]")] public class TestController : ControllerBase { //日誌 private readonly ILogger<TestController> _logger; public TestController(ILogger<TestController> logger) { _logger = logger; } /// <summary> /// /Test/Index /// </summary> /// <returns></returns> [HttpGet] public JsonResult Index() { _logger.LogInformation("/Test/Index " + DateTime.Now.ToString()); ApiResult<string> result = new ApiResult<string>() { Data = "123456", ErrorCode = "0", Message = "success" }; return new JsonResult(result); } } }
API接口的參數標註
[FromBody] 請求正文
[FromForm] 請求正文中的表單數據
[FromHeader] 請求標頭
[FromQuery] 請求查詢字符串參數
[FromRoute] 當前請求中的路由數據
[FromServices] 作爲操作參數插入的請求服務