.Net Core WebApI学习笔记

288 阅读2分钟

路由接口

image.png

image.png

跨域

//添加跨域设置
// 添加策略(解决同源跨域问题) 允许所有的头部请求  Cors是自己定义
builder.Services.AddCors(cor =>
{
    cor.AddPolicy("Cors", policy =>
    {
        policy.AllowAnyOrigin()
        .AllowAnyHeader()
        .AllowAnyMethod();
    });
});
var app = builder.Build();
//添加跨域设置
app.UseCors("Cors");

默认页面配置成swagger页

image.png

返回值类型

· 特定类型
· IActionResult 返回状态码
· ActionResult 返回状态码和数据模型(类型)

Minimal APIs

app.MapGet
app.MapPost
app.MapPut
app.MapDelete
方法其实就是一个委托,委托本质就是一个方法

image.png

路由约束

路由约束限制路由的匹配规则
app.MapGet("/{id:regex(^[a-z0-9]+$)}", delegate(string id) {return id;});

依赖注入

IOC: Inversion of control 控制反转
依赖注入是实现控制反转的一种手段或方式
DI:Dependency Injection 
    应用程序‘依赖’IOC容器
    应用程序需要IOC容器来提供对象需要的外部资源
    将应用程序依赖的某个对象注入到IOC容器中
    注入的就是某个对象需要的外部资源(包括对象、资源、常量数据)
IOC容器:在ASP NET Core6中指的是 ServiceCollection -> 服务收集器    
在Minimal APIs 里也可以使用注入的类

报错记录:Unable to resolve service for type: ... 就是没有注册

image.png

服务生命周期

Transient 瞬时生命周期:每次使用的时候都会new一个对象
Singleton 单例生命周期:只需在第一次时new
Scoped 作用域生命周期: 线程单例,每次请求就是一个线程

image.png image.png

指令

ctor:快速创建函数

Autofac框架的使用

安装:在nuget插件中进行包的安装

image.png

  • 使用*

image.png

报错

不明确的HTTP操作方法 方法属性错误

image.png

    // private 写成了 public
    private bool Check()
    {
        return true;
    }

Filter过滤器

AOP:面向切面编程
filter就是实现AOP的一种方式

在ASP.NET Core中的五大filter:

  • AuthorizationFilter 授权过滤器
    
  • IResourceFilter  资源管理过滤器
    
  • IActionFilter  行为过滤器(模型验证、日志记录)
    
  • IExceptionFilter  异常过滤器
    
  • IResultFilter  结果过滤器
    

Filter的创建和使用:

image.png

image.png

过滤器管道

:官方入口

image.png

Filter注册方法

顺序:全局--> 类 --> 方法
方法注册(action)
自定义的属性框架是不认识的,需要继承自框架中的接口

AuthorizationFilter的执行是在控制器构造之前执行的

ResourceFilter的执行是在控制器构造之前执行的

特性: 只能在该方法内使用
类注册(控制器)
特性:在类中的方法都可以使用,而且会线执行类中的filter

image.png

全局注册(Porgram)

image.png