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

网站的建设多少钱哪家网络公司做网站好

网站的建设多少钱,哪家网络公司做网站好,重庆做网站公司哪家比较好,推广型网站制作公司一.前言接触到动态WebApi#xff08;Dynamic Web API#xff09;这个词的已有几年#xff0c;是从ABP框架里面接触到的#xff0c;当时便对ABP的这个技术很好奇#xff0c;后面分析了一波#xff0c;也尝试过从ABP剥离一个出来作为独立组件来使用#xff0c;可是后来因与… 一.前言接触到动态WebApiDynamic Web API这个词的已有几年是从ABP框架里面接触到的当时便对ABP的这个技术很好奇后面分析了一波也尝试过从ABP剥离一个出来作为独立组件来使用可是后来因与ABP依赖太多而放弃。十几天前朋友 熊猫 将这部分代码我和他在搞事情成功的从 ABP 中剥离出来并做了一个简单Demo扔给我经过这么久实在是太懒^_^终于经过一些修改、添加功能、封装现在已经能作为一个独立组件使用项目开源在Githubhttps://github.com/dotnetauth/Panda.DynamicWebApi希望觉得有用的朋友能给一个 Star 支持一下。本文只讲使用不讲原理原理放到后面的文章中详细介绍。二.介绍不管是传统的三层架构、 DDD 经典四层架构DDD Lite亦或是其他具有应用逻辑层业务逻辑层的架构在Web应用程序开发当中 我们的业务逻辑最终都需要经过 Web Api 来进行调用这里我们可能会有一个重复的操作编写业务逻辑-编写API调用业务逻辑这种重复性的操作有没有解决办法呢我们编写完业务逻辑以后便给我们自动生成WebApi答案当然是有的。这里介绍一下本文的主角Panda.DynamicWebApihttps://github.com/dotnetauth/Panda.DynamicWebApi。源自于ABP的一个可独立使用的可自动为你的业务逻辑层生成 ASP.NET Core WebApi 层的开源组件。它生成的API符合Restful风格可以根据符合条件的类来生成WebApi由MVC框架直接调用逻辑无性能问题完美兼容Swagger来构建API说明文档。三.使用这里以 DDD 经典四层架构中的应用逻辑层来讲解。1.准备1建立两个项目一个是应用逻辑层类库项目一个是作为生成WebApi HostASP.NET Core WebApi项目2编写应用逻辑定义一个应用逻辑接口所有应用逻辑都应实现它定义一个学生管理逻辑接口继承应用逻辑接口public interface IStudentAppService : IApplicationService{StudentOutput Get(int id); ListStudentOutput Get(); void Update(UpdateStudentInput input);void UpdateAge(int age);void Delete(int id);void Create(CreateStudentInput input);}实现学生逻辑管理接口public class StudentAppService: IStudentAppService{ [HttpGet({id:int})]public StudentOutput Get(int id){return new StudentOutput() {Id 1, Age 18, Name 张三}; }public ListStudentOutput Get(){return new ListStudentOutput() {new StudentOutput(){Id 1,Age 18,Name 张三},new StudentOutput(){Id 2,Age 19,Name 李四} }; }public void Update(UpdateStudentInput input){throw new System.NotImplementedException(); } [HttpPatch({id:int}/age)]public void UpdateAge(int age){throw new System.NotImplementedException(); } [HttpDelete({id:int})]public void Delete(int id){throw new System.NotImplementedException(); }public void Create(CreateStudentInput input){throw new System.NotImplementedException(); }}3给 WebApi Host 项目配置 Swagger。Install-Package Swashbuckle.AspNetCore -Version 4.0.1Startup 中配置public void ConfigureServices(IServiceCollection services){ services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddSwaggerGen(options { options.SwaggerDoc(v1, new Info { Title 晓晨学生管理系统 WebApi, Version v1 }); options.DocInclusionPredicate((docName, description) true); options.IncludeXmlComments(bin\Debug\netcoreapp2.2\Xc.StuMgr.WebApiHost.xml); options.IncludeXmlComments(bin\Debug\netcoreapp2.2\Xc.StuMgr.Application.xml); });}public void Configure(IApplicationBuilder app, IHostingEnvironment env){if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseSwagger(); app.UseSwaggerUI(c { c.SwaggerEndpoint(/swagger/v1/swagger.json, 晓晨学生管理系统 WebApi); }); app.UseMvc();}运行则会直接看到默认的 ValuesController 的5个API。2.动态WebApi通过Nuget 为 Application 项目安装组件Install-Package Panda.DynamicWebApi为接口 IApplicationService继承 IDynamicWebApi同时添加特性DynamicWebApi[DynamicWebApi]public interface IApplicationService:IDynamicWebApi{}在 WebApi Host 项目中Startup里配置动态WebApiStartup.cs:services.AddDynamicWebApi();然后打开浏览器访问将会看到可以看到成功为我们的 StudentAppService 生成了WebApi并且和Swagger完美兼容。四.详细介绍经过上面的介绍大家应该可以看出使用是非常简单的只需两步第一步为你的类或者该类的接口、该类继承的抽象类不得放在该类除前面两种情况的父类上继承 IDynamicWebApi接口并加入特性[DynamicWebApi]第二步Startup中注册services.AddDynamicWebApi();因为需要MVC的一些类来进行处理所以必须放在AddMvc之后本组件有检查。1.规则本组件采用约定大于配置所以在实际使用中有几个规则1要让类生成动态API需要满足两个条件一个是该类直接或间接实现 IDynamicWebApi同时该类本身或者父抽象类或者实现的接口具有特性 DynamicWebApi2添加特性 [NonDynamicWebApi] 可使一个类或者一个方法不生成API[NonDynamicWebApi] 具有最高的优先级。3会对符合规则的动态API类名进行后缀的删除如我们前面的 StudentAppService会被删除 AppService 后缀这个规则是可以动态配置的。4会自动添加API路由前缀默认会为所有API添加 api前缀5默认的HTTP动词为POST可以通过 HttpGet/HttpPost/HttpDelete等等ASP.NET Core 内置特性来覆盖6可以通过HttpGet/HttpPost/HttpDelete等内置特性来覆盖默认路由7默认会根据你的方法名字来设置HTTP动词如 CreateApple 或者 Create 生成的API动词为 POST对照表如下若命中忽略大小写对照表那么该API的名称中的这个动词将会被省略如 CreateApple 将会变成 Apple如未在以下对照表中将会使用默认动词 POSTcreatePOSTaddPOSTpostPOSTgetGETfindGETfetchGETqueryGETupdatePUTputPUTdeleteDELETEremoveDELETE8强烈建议方法名称使用帕斯卡命名PascalCase规范以更好的自动处理API名称且使用以上对照表的动词。如:添加苹果 - Add/AddApple/Create/CreateApple更新苹果 - Update/UpdateApple...9[DynamicWebApi] 特性因为可被继承所以为了父类被误识别禁止放在除抽象类、接口以外的父类上。2.配置所有的配置均在对象 DynamicWebApiOptions 中说明如下DefaultHttpVerb否默认值POST。默认HTTP动词DefaultAreaName否默认值空。Area 路由名称DefaultApiPrefix否默认值api。API路由前缀RemoveControllerPostfixes否默认值AppService/ApplicationService。类名需要移除的后缀RemoveActionPostfixes否默认值Async。方法名需要移除的后缀FormBodyBindingIgnoredTypes否默认值IFormFile。不通过MVC绑定到参数列表的类型。五.疑难解答若遇到问题可使用 Issues 进行提问。六.结束本项目开源地址https://github.com/dotnetauth/Panda.DynamicWebApi 希望给个 Star 支持一下本文Demo地址XiaoChen.StudentManagementABPhttps://github.com/aspnetboilerplate/aspnetboilerplate原文地址https://www.cnblogs.com/stulzq/p/11007770.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com
http://www.zqtcl.cn/news/693963/

相关文章:

  • 朝阳网站搭建公司淘宝导购网站备案
  • 京润珍珠企业网站优化洛阳做网站
  • 嘉定网站开发中山市区做网站公司
  • 可信赖的武进网站建设上海中小企业服务中心
  • 应用网站品牌官方网站
  • 网站建设综合训练的实验目的漳州网站建设网站运营
  • 网页设计免费网站推荐我的世界做壁纸的网站
  • 黄岩做网站的公司网站栏目相关内容在哪采集啊
  • 邯郸市城市建设局网站快速建站平台
  • 华为官方手表网站wordpress文章图片链接
  • 做个网站需要多久腾讯云云服务器官网
  • 松江企业做网站一个阿里云怎么做两个网站
  • 网站制作+app+公众号app制作定制外包88
  • 企业网站建设有哪些好处制作网页之前必须先建立什么
  • 盐亭县建设局网站网站建设基本技术
  • 优化seo网站高质量的邯郸网站建设
  • 网站开发 合同范本软件设计专业介绍
  • 南山网站建设设计莱州网站建设关键字排名优化网络托管微信代运营
  • 传统门户网站有哪些网络营销公司全网推广公司
  • 桥头镇网站建设卢松松外链工具
  • 手机网站导航设计大连市自然资源局
  • 装修网站vr全景图怎么做软件工程师证书报考条件
  • 部门网站建设管理经验交流材料定制开发app
  • 做网站 就google权重查询
  • 网站制作 福宁网络有限公司绚丽的网站
  • wordpress ip 访问重庆seo顾问服务
  • 灰色调网站自动seo系统
  • 河北省网站建设公司排名企业网络信息安全
  • 郑州网站定制建个微商城网站
  • 北京好网站制作公司哪家好vs加数据库做网站