.net8系列-02图文并茂手把手教你编写增删改查接口

前情提要

接上篇文章,我们的应用已经创建完毕了,接下来我们编写几个自己的接口

快速开始

新增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}")

结语

  • 今天就写到这里啦~
  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

posted @ 2024-04-21 01:55  糖~豆豆  阅读(31)  评论(0编辑  收藏  举报
Live2D