前情提要
接上篇文章,我们的应用已经创建完毕了,接下来我们编写几个自己的接口
快速开始
新增Controller
复制一份WeatherForecastController.cs,改名为CommonInfoController
 
设置Class名
将CommonInfoController中的复制过来的class名改成新名
 
新增数据类型
我们在WeatherForecast.cs文件中新增如下代码
  public class CommonInfo
  {
      public DateOnly Date { get; set; }
      public string? Text { get; set; }
  }

新增接口
我们新增几个增删改查的测试接口,暂时先按静态数据返回,后续文章会详细介绍连接数据库查询相关内容接口编写逻辑。
编写接口代码
完整代码如下:
using Microsoft.AspNetCore.Mvc;
using static System.Runtime.InteropServices.JavaScript.JSType;
using System;
using System.Reflection;
namespace xiaojinWebApplication.Controllers
{
    [ApiController]
    [Route("[controller]")]
    public class CommonInfoController : ControllerBase
    {
        private readonly ILogger<CommonInfoController> _logger;
        public CommonInfoController(ILogger<CommonInfoController> logger)
        {
            _logger = logger;
        }
        
        [HttpGet(Name = "getCommonInfo")]
        public CommonInfo getCommonInfo()
        {
            return new CommonInfo
            {
                Date = DateOnly.FromDateTime(DateTime.Now),
                Text = "getCommonInfo"
            };
        }
        [HttpPost(Name = "postCommonInfo")]
        public CommonInfo postCommonInfo()
        {
            return new CommonInfo
            {
                Date = DateOnly.FromDateTime(DateTime.Now),
                Text = "postCommonInfo"
            };
        }
        [HttpPut(Name = "putCommonInfo")]
        public CommonInfo putCommonInfo()
        {
            return new CommonInfo
            {
                Date = DateOnly.FromDateTime(DateTime.Now),
                Text = "putCommonInfo"
            };
        }
        [HttpDelete(Name = "deleteCommonInfo")]
        public CommonInfo deleteCommonInfo()
        {
            return new CommonInfo
            {
                Date = DateOnly.FromDateTime(DateTime.Now),
                Text = "deleteCommonInfo"
            };
        }
    }
}

运行项目进行测试

 
总结
把控制器当成一整块资源,使用了RESTful API,HTTP方法和方法含义如下:
GET(SELECT):从服务器取出资源(一项或多项)。
 POST(CREATE):在服务器新建一个资源。
 PUT(UPDATE):在服务器更新资源(客户端提供完整资源数据)。
 PATCH(UPDATE):在服务器更新资源(客户端提供需要修改的资源数据)。
 DELETE(DELETE):从服务器删除资源。
特性路由
编写如下代码
 
        [HttpGet]
        [Route("{userId}")] // 特性路由
        public CommonInfo getCommonInfoTest(int userId)
        {
            return new CommonInfo
            {
                Date = DateOnly.FromDateTime(DateTime.Now),
                Text = "特性路由 userId:" + userId
            };
        }
运行项目,测试携带参数

 
遇到报错
InvalidOperationException: The constraint reference ' int' could not be resolved to a type. Register the constraint type with 'Microsoft.AspNetCore.Routing.RouteOptions.ConstraintMap'.
解决方案:
-  案例1:[Route(“{userId: int}”)] 改为 [Route(“{userId}”)] 
-  案例2:HttpGet(“update/{id :string }”)删除:string,将其更改为HttpGet(“update/{id}”) 
结语
- 今天就写到这里啦~
- 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
- 大家要天天开心哦
欢迎大家指出文章需要改正之处~
学无止境,合作共赢









![[卷积神经网络]YoloV8](https://img-blog.csdnimg.cn/direct/ef01e801b58e41039c17c85fb6ade25f.png)






![[Linux][进程信号][二][信号如何被保存][信号处理][可重入函数]详细解读](https://img-blog.csdnimg.cn/direct/46d8e263aa0c44efbf5af1102ae09647.png)



