通俗理解.NET 6 Minimal APIs( 二 )


app.MapPost
app.MapPut
app.MapDelete
接下来 , 我们用一个简单的示例 , 完成一个 demo 。

  • Tutorial: Create a minimal web API with ASP.NET Core
完成一个 Minimal APIs 完整的 Demo
我们以一个简单 Order 订单为例 , 通过 Minimal APIs 实现 CRUD 设计和实现:
▌先准备好 Order 类和 IOrderService 接口以及 OrderServiceRepository
Order 类:
namespace NET6{public class Order{public int ID {get;set;}public decimal Price {get;set;}
public string CustomAddress {get;set;}
public int State{get;set;}}}
IOrderService 接口:
namespaceNET6{publicinterfaceIOrderService{Order GetOrder( intid ) ; voidCreateOrder( Order order) ;
voidDeleteOrder( intid ) ;
voidUpdateOrder( Order order) ; }}
OrderServiceRepository 类 , 使用内存集合模拟实现数据存储层 。
namespaceNET6{publicclassOrderServiceRepository: IOrderService{staticList<Order> orders = newList<Order>; publicOrder GetOrder( intid ) {returnorders.FirstOrDefault(i=>i.ID == id)?? null; }
【通俗理解.NET 6 Minimal APIs】publicvoidCreateOrder( Order order) {orders.Add(order);}
publicvoidDeleteOrder( intid ) {varorder = orders.FirstOrDefault(i=>i.ID == id); if(order!= null) orders.Remove(order);}
publicvoidUpdateOrder( Order order) {DeleteOrder(order.ID);CreateOrder(order);}}}
▌在 Program.cs 类中 , 注册 IOrderService 服务 , 添加 AddOrder 和 GetOrder Http Web API
通俗理解.NET 6 Minimal APIs
文章图片

using NET6;var builder = WebApplication.CreateBuilder(args);
//registe IOrderService servicebuilder.Services.AddScoped<IOrderService, OrderServiceRepository>;
var app = builder.Build;
app.MapGet("/", => "Hello World!");
//add order save APIapp.MapPost("/add",(Order order,IOrderService service)=>{ service.CreateOrder(order);}).WithName("addorder");
//add order query APIapp.MapGet("/getorder",(int id, IOrderService service)=>{ return service.GetOrder(id);}).WithName("getorder");
app.Run;
上面的低码中 , 首先增加一个文件级别的 namespace , 这个地方为了和大家示意 Global Namespace 的区别
using NET6;
然后 , 在 ASP.NET DI 依赖注入框架中添加 IOrderService 服务:
//registe IOrderService servicebuilder.Services.AddScoped<IOrderService, OrderServiceRepository>;添加订单 Order 保存API 服务:
//add order save APIapp.MapPost("/add",(Order order,IOrderService service)=>{ service.CreateOrder(order);}).WithName("addorder");上面这个 HttpWebAPI , 我们采用了 Post 方式 , 请求是必须传入 order 参数 。
这个代码中 , 我们看到保存订单方法有2个参数 , 一个是 Order , 另一个是 IOrderService , 第二个参数 , 原生支持依赖注入 , 不需要显式声明创建 。
类似的 , 继续添加查询订单 API 服务
  • 特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。