新建项目 类型: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
示例:
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] 作为操作参数插入的请求服务