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 中 需要指定 模型绑定的数据源。