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測試如下
如有錯誤請指正
我只是一棵樹