ASP.NET Core (Web API) 新刪修查(CRUD)

ASP.NET Core 8 ,Web API ,Restful API ,Visual Studio 2022

 

資料庫範例請參考前篇
https://dotblogs.com.tw/JustTree/2024/01/24/132848

1.先建立用來接收資料的Model

輸入Model資料
namespace NetCore8Api.Models
{
    public class ConnectionTestModel
    {
    }

    // 接收資料
    public class InDataClass
    {
        public string? Name { get; set; }
        public int? AttackPower { get; set; }
    }
}

2.建立新的Controller

修改Controller資料
using Microsoft.AspNetCore.Mvc;
using NetCore8Api.Models;

namespace NetCore8Api.Controllers
{
    [ApiController]
    [Route("api/[controller]")]
    public class ConnectionTestController : Controller
    {
        // 資料庫
        private readonly NetCore8ExampleContext _netCore8ExampleContext;

        // 初始化
        public ConnectionTestController(NetCore8ExampleContext netCore8ExampleContext)
        {
            _netCore8ExampleContext = netCore8ExampleContext;
        }

        // 查詢單筆
        [HttpGet("{id}")]
        public IActionResult Get(int id)
        {
            var result = _netCore8ExampleContext.Member.Where(o => o.Id == id).SingleOrDefault();
            if (result == null)
            {
                return NotFound("找不到資料");
            }
            return Ok(result);
        }

        // 查詢全部
        [HttpGet]
        public IActionResult Get()
        {
            var result = _netCore8ExampleContext.Member.ToList();
            if (result == null)
            {
                return NotFound("找不到資料");
            }
            return Ok(result);
        }

        // 新增單筆
        [HttpPost]
        public IActionResult Post([FromBody] InDataClass InData)
        {
            // 資料依照需求添加
            Member insert = new Member
            {
                Name = InData.Name,
                AttackPower = InData.AttackPower,
            };
            // 添加紀錄
            _netCore8ExampleContext.Member.Add(insert);
            // 寫入資料庫
            _netCore8ExampleContext.SaveChanges();
            // 可以讀到新增的Id
            int NewId = insert.Id;
            return Ok(insert);
        }

        // 修改單筆
        [HttpPut("{id}")]
        public IActionResult Put(int id, [FromBody] InDataClass InData)
        {
            // 找到即將被修改的資料
            var update = _netCore8ExampleContext.Member.Where(o => o.Id == id).SingleOrDefault();

            // 修改資料
            if (update != null)
            {
                if (InData.Name != "")
                {
                    update.Name = InData.Name;
                }
                if (InData.AttackPower != null)
                {
                    update.AttackPower = InData.AttackPower;
                }
                // 寫入資料庫
                _netCore8ExampleContext.SaveChanges();
                // 這裡可以讀到更新的Id
                int updateId = update.Id;
            }
            else
            {
                return NotFound("找不到資料");
            }
            return Ok(update);
        }

        // 刪除單筆
        [HttpDelete("{id}")]
        public IActionResult Delete(int id)
        {
            // 找到即將被修改的資料
            var delete = _netCore8ExampleContext.Member.Where(o => o.Id == id).SingleOrDefault();

            if (delete != null)
            {
                _netCore8ExampleContext.Member.Remove(delete);
                _netCore8ExampleContext.SaveChanges();
            }
            else
            {
                return NotFound("找不到資料");
            }
            return Ok(delete);
        }
    }
}

3.測試結果

用工具Postman測試如下
查詢全部
查詢單筆資料
新增資料
修改資料
刪除資料

如有錯誤請指正

我只是一棵樹