当前位置: 首页 > news >正文

站酷魔方网站建设中外贸品牌推广公司

站酷魔方网站建设中,外贸品牌推广公司,法学院网站建设建议,做航模的网站大家好#xff0c;我是等天黑。FastEndpoints 是一个基于 .NET 6 开发的开源 webapi 框架#xff0c;它可以很好地替代 .NET Minimal APIs 和 MVC #xff0c;专门为开发效率而生#xff0c;带来了全新的开发模式和编码体验。另外对于 .NET 的中间件、认证、授权、日志我是等天黑。FastEndpoints 是一个基于 .NET 6 开发的开源 webapi 框架它可以很好地替代 .NET Minimal APIs 和 MVC 专门为开发效率而生带来了全新的开发模式和编码体验。另外对于 .NET 的中间件、认证、授权、日志依赖注入这些也都是支持的甚至有些还进行了加强所以你很快就可以上手它。 小试牛刀 接下来我将用 FastEndpoints 创建一个 webapi 应用展示它是如何使用的真的非常简单。创建一个新项目dotnet new web -n MyWebApp进入项目cd MyWebApp安装 Nuget 包dotnet add package FastEndpoints更新 Program.csglobal using FastEndpoints;var builder  WebApplication.CreateBuilder(); builder.Services.AddFastEndpoints();var app  builder.Build(); app.UseAuthorization(); app.UseFastEndpoints(); app.Run();添加一个 Request DTOpublic class MyRequest {public int Age { get; set; }public string Name { get; set; } }添加一个 Response DTOpublic class MyResponse {public int Id { get; set; }public int Age { get; set; }public string Name { get; set; }public DateTime CreateTime { get; set; } }添加一个 Endpoint Class然后添加下面的代码 这是处理业务逻辑的地方public class MyEndpoint : EndpointMyRequest {public override void Configure(){Post(/api/user/create);AllowAnonymous();}public override async Task HandleAsync(MyRequest req, CancellationToken ct){var response  new MyResponse(){Id  1,Age  req.Age,Name  req.Name,CreateTime  DateTime.Now };await SendAsync(response);} }准备工作都好了直接启动我们的 webapi 项目。然后用 Postman 或者其他工具向 /api/user/create 端点发送 POST 请求。创建了一个用户并返回了用户信息就是这么简洁这就是 FastEndpoints。你可能注意到了上面的 Configure方法指定了 Http 动词和端点。当然你也可以使用 .NET 原生的特性的方式这也是支持的。[HttpPost(/my-endpoint)] [Authorize(Roles  Admin,Manager)] public class UpdateAddress : EndpointMyRequest, MyResponse {public override async Task HandleAsync(MyRequest req, CancellationToken ct){await SendAsync(new MyResponse { });} } 依赖注入 在 FastEndpoints 中可以使用三种方式来访问 IOC 容器中注册的服务。假设我们有一个 HelloWorldService 。public interface IHelloWorldService {string SayHello(); }public class HelloWorldService : IHelloWorldService {public string SayHello()  hello world!; }并且注册到 IOC 容器中。builder.Services.AddScopedIHelloWorldService, HelloWorldService();1. 构造函数注入这是我们最熟悉的也是使用最多的方式。public class MyEndpoint : EndpointWithoutRequest {private IHelloWorldService _helloService;public MyEndpoint(IHelloWorldService helloScv){_helloService  helloScv;}public override void Configure(){Get(/api/hello-world);}public override async Task HandleAsync(CancellationToken ct){await SendAsync(_helloService.SayHello());} }2. 属性注入服务实例可以通过属性的方式进行自动注入。public class MyEndpoint : EndpointWithoutRequest {public IHelloWorldService HelloService { get; set; }public override void Configure(){Get(/api/hello-world);}public override async Task HandleAsync(CancellationToken ct){await SendAsync(HelloService.SayHello());} }3. 手动解析也可以像下面这样直接手动获取服务。使用 TryResolve 或 Resolve() 方法。public override async Task HandleAsync(CancellationToken ct) {IHelloWorldService? helloSvc  TryResolveIHelloWorldService();if (helloSvc is null)ThrowError(service not resolved!);var logger  ResolveILoggerMyEndpoint();logger.LogInformation(hello service is resolved...);await SendAsync(helloSvc.SayHello()); }预先解析的服务下面的三个服务已经预先解析过我们可以直接在处理程序中使用。property: Config service : IConfigurationproperty: Env service : IWebHostEnvironmentproperty: Logger service : ILogger非常方便地使用它们。public override async Task HandleAsync(CancellationToken ct) {Logger.LogInformation(this is a log message);var isProduction  Env.IsProduction();var smtpServer  Config[SMTP:HostName];... } 架构模式 如果你写过 Go Web你会发现这是何等的相似。package mainimport (fmtnet/http )func main() {http.HandleFunc(/, func(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, Hello, youve requested: %s\n, r.URL.Path)})http.ListenAndServe(:80, nil) }FastEndpoints 遵循了 REPR 设计 Request-Endpoint-Response这和我们常说的 MVC 模式是不一样的。思考一下如果后端只是一个 webapi 应用没有 View 那它就变成了 MC 架构 。是不是很奇怪那为什么不用 REPR 模式呢从另外一个角度上说“分层架构” 是我们很熟悉和经常使用的代码被分成不同的层。这样的好处也是显而易见的。它们以解耦的方式组合在一起在需要时我们可以很方便的替换其中的层。还有一种架构称为 “垂直切片架构, 系统的每个组件都是单独的一块彼此并不影响就像微服务那样。而 FastEndpoints 正是使用了下面的 “垂直切片架构。 总结 如您所见FastEndpoints 是一个灵活高效的 webapi 框架。另外它还有其他的功能比如异常处理集成和单元测试限流API 版本控制等等。希望对您有用文档: https://fast-endpoints.com/Github: https://github.com/FastEndpointsEND
http://www.zqtcl.cn/news/1035/

相关文章:

  • 南宁网站建设哪家公司好建网站的流程
  • 合肥优秀网站建设创意空间设计
  • 网站开发语言哪种好做视频教学网站服务器配置
  • 盐田做网站的公司app开发制作定制外包26
  • 北京网站建设58中企动力总部
  • 宜春做网站哪里好网站建设企业网站制作
  • 国基建设集团有限公司网站沈阳百度首页优化
  • 郴州网站建设ku0735社交app开发成本预算表
  • 做poster的网站wordpress 每页文章数量
  • 网站域名怎么快速备案价格wordpress代码增强插件
  • 企业自己建网站怎么建iis8.5 wordpress
  • 温州网站建设的公司一个网站2级域名多
  • 网站一般做多大的wordpress搜索安全
  • seo描述快速排名seo关键词排名优化销售
  • 创业项目的网站做网站数据库设计
  • 给网站设置关键词在网站建设中要注意的问题
  • 大型门户网站系统合肥做网站便宜
  • 互联网官方网站医疗公司logo设计图片
  • 做网站用什么编程软件一网网站制作平台
  • wordpress 2.0漏洞手机网站 搜索优化 百度
  • 做网站不花钱新平台推广文案
  • 什么手机可做网站做网站找什么公司
  • 门户网站建设请示家装设计需要学什么软件
  • 国内规模大的建站公司连接wordpress
  • 珠海网站制作软件网站seo做点提升流量
  • 佛山市做网站的ui设计工具有哪些
  • 建设网站中期要做什么长春企业建站平台
  • 沂水做网站北京购物网站建设公司
  • 网站建设费会计分录网络公司的网页设计
  • 睢县网站建设云服务器网站搭建教程