ASP.NET CORE Study04

2023-11-30 19:05:32 浏览数 (2)

Binding source Attributes

借助 binding source attributes 可以将请求传递的数据传递给 api,详细的attribute 如下图。

但 在 api 项目下的 标识了 apicontroller 的controller下,binding source attributes 的规则 有所改变

HttpHEAD

head 也是一种http 请求方法,他跟 get 方法非常相似。重要的不同在于 head 方法不会返回 body ,只有响应头信息。 head 可以用来在资源上获取一些信息。 在 asp.net core 提供了HTTP attribute HttpHead 使用,非常方便。

过滤 和 搜索

过滤:首先是一个完整的集合,然后根据条件把匹配/不匹配的数据项移除。 搜索:首先是一个空的集合,然后根据条件把匹配/不匹配的数据项往里面添加。

注意过滤 的字段 只能对 对外暴露的DTO 类的字段值进行过滤。

asp.net core 异常处理

开发模式下,程序出现未想到的异常,通过异常处理返回给用户具有提示性的信息,而不是直接返回异常信息,安全性存在隐患。

是 startup类的configure 方法进行配置。

代码语言:javascript复制
if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {	
                // 使用useexceptionhandler 中间价来简单处理异常
                app.UseExceptionHandler(appBuilder => 
                {
                    appBuilder.Run(async context =>
                    {
                        context.Response.StatusCode = 500;
                        await context.Response.Body.WriteAsync(System.Text.Encoding.Default.GetBytes("Unexpected Error"));
                    });
                });
            }
http 安全性和幂等性

HTTP 各个方法的详解

根据 http 方法的安全性和幂等性的了解,在各种业务场景下使用什么方法可以提供参照。

传递复杂 Action 参数

当Action 需要的参数较多时,通过形参直接传递,会导致代码非常冗余,因此需要使用 模型类 来接受复杂参数,处理复杂参数的传递。 首先需要声明 模型类 ,就是基本的简单的普通 c# 类

代码语言:javascript复制
    public class CompanyDtoParameters
    {
        public String CompanyName { get; set; }

        public String SearchTerm { get; set; }
    }

注意属性的名称就是请求传递的数据的键名。

然后在 service 类中使用 和 controller 中使用

注意 controller 中 需要指定 模型绑定的数据源。

0 人点赞