当前位置: 首页 > 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.pierceye.com/news/1035/

相关文章:

  • 平台网站模板 优帮云php做视频网站源码
  • 做百度推广是不是得有个网站先网站制作动态转静态怎么做
  • 部队网站源码怎样注册小程序
  • 房地产网站建设报价大学生创业计划书完整版
  • 可以做思维导图的网站打开网站显示404
  • 昆明做网站优化公司企业宣传片模板免费
  • 重庆响应式网站多少钱做医疗信息网站的域名
  • 苏州企业网站建设开发与制作wordpress 主题 图片
  • 成都建网站要多少钱医院管理系统
  • 杭州做网站下沙有哪些做婚品的网站
  • 免费个人电子版简历下载网站代码优化的方法
  • 电商网站建设试题单纯做网站的公司
  • 网站怎么做才算精致用flash做网站
  • 下载一个网站的源码下载建设官方网站企业网银登录
  • 做个兼职网站设计怎么给网站图片加alt
  • 建设银行 上海科技中心网站宣城网站建设公司
  • seo网站打开慢打开网站弹出视频js
  • 那些做环保网站的好潞城市网站建设公司
  • 免费的破解版wordpress主题最好的网站排名优化工作室
  • 建立个公司网站如何做类似于淘宝的网站
  • 网站开发职业认知小结个人网站制作源代码下载
  • 青岛物流网站建设博客网站wordpress
  • 网站建设迅雷苏州小程序开发公司哪家好
  • 深圳宝安上市公司网站建设报价网站开发后端论文
  • 重庆做网站 帮助中心盛锡福网站
  • 网站的形成旅游网站的网页设计参考文献
  • 百度seo推广优化廊坊首页霸屏优化
  • 珠海网站设计公司泰安手机网站建设公司
  • 织梦中二次开发新的网站荥阳网
  • 微信小程序制作网站广州市海珠区建设局五位一体网站