首页
学习
活动
专区
圈层
工具
发布

.net 温故知新【11】:Asp.Net Core WebAPI 入门使用及介绍

一、创建一个WebApi项目 我使用的是VS2022, .Net 7版本。...在创建界面有几项配置: 配置Https 启用Docker 使用控制器 启用OpenAPI支持 不使用顶级语句 其中配置Https 是WebApi是否使用https协议,启用docker是配置服务是否docker...第二个启用OpenAPI支持,如果启用OpenAPI说的是swagger支持,也就是说.net 自动集成了swagger。...第三个不使用顶级语句,如果勾选后则程序的Program类和Main方法完整。 那么我们看下上面配置是什么意思,第二个swagger支持我们就不管了默认开启。...Controller 派生自 ControllerBase,并添加对视图的支持,因此它用于处理 Web 页面,而不是 Web API 请求。

3.1K31

在Sitecore8.2解决方案中使用Swagger作为API管理工具

所以我实现了一个Web API控制器,我希望在我的Sitecore实例中托管它并以某种方式记录它: namespace Feature.WebApi.Controllers { using System.Web.Http...默认情况下,它不能与Sitecore平稳运行,但我们可以使用少量配置使其正常工作。Swagger UI的入口点是{your.domain.com} / swagger。...我们可以通过取消另外一行配置来绕过它: c.DisableValidator(); Web API服务 现在它查找并运行,我甚至能够找到我的服务方法。...但是,Sitecore有很多自己使用的Web API服务,很难找到我自己的服务。将Sitecore本机Web API控制器与我的分离是很好的。...它支持API版本控制,从我的角度来看,这是我们如何分离它的方法之一。我们可以向SwaggerConfig添加一个方法,该方法将声明API的版本。

39010
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.NET Core中的Controller

    ASP.NET CORE出现之前我们实现的Controller,MVC都继承自Controller基类,WebApi的话继承自ApiController。...现在ASP.NET CORE把MVC跟WebApi合并了,已经不再区分MVC或者WebApi。ASP.NET CORE的Controller继承结构也发生了变化。...使用NonControllerAttribute 如果你的一个类名恰巧包含“Controller”的后缀,但你并不想ASP.NET CORE框架发现它,你可以在类上加上NonControllerAttribute...总结 设计restful(web api)接口的时候可以继承ControllerBase 设计MVC系统的时候可以继承Controller 当一个POCO类名称包含"Controller"后缀或添加ControllerAttribute...的时候框架会认为这是一个控制器 当一个类不想被框架当做控制器的时候可以添加NonControllerAttribute

    2K20

    dotNET 7:最小 API 使用

    创建一个最小 API 在 VS 2022 中创建 WebAPI 项目,不勾选使用控制器,创建出来的就是最小 API : 不勾选使用控制器,就会创建最小 API 模板; 启用 OpenAPI ,默认会添加...Swagger; 顶级语句:顶级语句是 C# 9.0 中添加的新特性,如果勾选不使用,Program 类中还会出现 main 函数。...,第二个参数是一个委托,用来编写接口的业务逻辑。...(args); //在下面添加服务器到容器,相当于之前 Startup 类中的 ConfigureServices 方法 //添加对 serilog 的使用 builder.Host.UseSerilog...依赖注入 依赖注入一个常见的做法是使用构造函数进行注入,传统的 WebAPI 中可以在 Controller 的构造函数中进行,但最小 API 没有 Controller ,下面看看在最小 API 中是怎么注入的

    1K30

    Asp.Net WebApi 调试利器“单元测试”

    当我们编辑好一个WebApi应用程序后,需要对该Api接口进行调试,传统的调试办法是在方法内设置断点,然后用PostMan等http工具模拟访问进行查看WebAPI的运行情况,但这种除了效率较低还进行出现...下面,我给大家推荐的是---"单元测试" 如何进行单元测试呢? 首先,我们在解决方案中新建一个ASP.NET WebAPI应用程序。 如图所示。 ? 点击确定后,选择空  并勾选WebAPI ?...然后填加一个Vaule控制器 ?...确认后,为了命名规范把第一个测试类命名成我们要测试的控制器的名称+Test,如图: ? 其次,需要填加对TestDemo也就是我么你要测试的那个项目的引用。...选择引用,添加引用,然后勾选我们要测试的项目。 ?

    2.5K50

    asp dotnet core 从零开始创建一个 WebApi 服务

    现在空白的 WebApi 服务还没有什么好玩的,让咱添加一个 Api 用于返回有趣的内容 默认创建的项目会添加一个 Controllers 文件夹,里面存放着控制器,控制器里面有方法,在方法上面标记特性就可以用来开启...WebApi 的服务啦,这里专业的说法是路由哦 我这里默认有一个叫 Controllers\WeatherForecastController.cs 的例子文件,如果叫其他名字也没关系,尝试打开他 在里面添加一个方法...最简单的项目是两个都不要勾选 现在可以看到有以下文件,作用如下图 ? 依然在控制器里面就包含了对外服务的相关方法,和上面用控制台创建的相同 控制器本身可以有多个,如下图创建一个简单的控制器 ?...或者非浏览器首页访问的 WebApi 很多都不会选择使用 80 等常用端口,以提高几乎可以忽略不计的安全性。...欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

    1.7K20

    Web API初体验——Python&易语言

    网上有很多API接口,只要简单的调用就可以获取到我们想要的信息,比如天气预报、每日一句等等。包括一些抢券活动,一般也是有API可以直接调用的。...WebApi类型项目的最大优势就是,开发者再也不用担心客户端和服务器之间传输的数据的序列化和反序列化问题,因为WebApi是强类型的,可以自动进行序列化和反序列化。...TRACE 回显服务器收到的请求,主要用于测试或诊断。 这样,前面四种请求方法刚好可对应于对数据的查询,添加,修改,删除。WebApi也推荐如此使用。...在WebApi项目中,我们请求的不再是一个具体页面,而是各个控制器中的方法。...04 — 易语言实践——WebAPI框架 这是网上找的一个WebAPI框架,我只要写相关API功能的插件即可,就跟上面Python的B文件一个意思,还是挺方便的。

    3.2K70

    用.NET Core构建安全的容器化的微服务

    微服务热潮正在如火如荼地进行,也有着充分的理由。它不是每个问题的银弹,但它无疑成为企业软件系统中可扩展性和弹性的实用解决方案。...dotnet new webapi -o friendlyphonenumber 这将构建一个新的.Net Core Web API项目。...创建控制器 接下来,我们将创建一个控制器。在这个新项目中,删除controllers文件夹中的ValuesControllers.cs。这是.Net CLI添加的示例而我们不会使用它。...理想情况下,我们应该使用类似Nginx的代理程序作为代理,但这超出了本文的范围,所以我们将设置应用程序直接在外部接口上侦听。...将SSL添加到我们的服务 现在我们需要生成证书来保护我们的服务,我们将使用Let's Encrypt构建证书,以便我们确保连接的安全。

    2.3K40

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(66)-MVC WebApi 用户验证 (2)

    前言: 回顾上一节,我们利用webapi简单的登录并进行了同域访问与跨域访问来获得Token,您可以跳转到上一节下载代码来一起动手。...知识点:   1.取所有类库中的Api接口   2.管理接口   3.对接口进行授权   4.在过滤器添加权限验证 开始: 回顾一下我们的模块管理: ?...管理的是每一个控制器中的Action(操作码) 我们的WebApi也是如此,每个控制器的操作码,在WebApi运行时候把数据填充到SysModule表和SysModuleOperation表中中来 1....,第二个foreach取得控制器下面的Action。...大家把这句话添加到Home的Index中来,跟踪一下,分别可以看到Group和m中模型的属性。 ? 现在知道怎么加表了吧!

    1.5K80

    宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用

    因为VB已经不是MS的宠儿了,只能通过控制台,手动配置WebAPI 1.2 创建成功后,立即把项目关闭掉;然后去到项目根目录下( 项目名.vbproj )的.vbproj文件,使用文本编辑器打开,替换成一下内容...WebBuilder.Services.AddEndpointsApiExplorer() ' 访问节点 WebBuilder.Services.AddControllers() ' 控制器...(HomeController),项目右键添加类,然后运行一下,成功即可!...Docker支持 2.1 项目右键,添加(Docker支持),Docker文件选择(Linux) 2.2 修改Docker的端口号为8001(自己随意,和Program.vb文件的端口对应即可...当然,上面的方式都是可视化的比较简单,但这也是我们追求的,化繁为简! 案例下载: 链接:https://pan.baidu.com/s/1QMIN_pSYZVz1UzG3y-IwYQ?

    4.2K20

    分布式事务 | 使用DTM 的Saga 模式

    取出第二个事务分支,这里是TransIn,调用该服务并成功返回 DTM已完成所有的事务分支,将全局事务的状态修改为已完成 基于以上这个时序图的基础上,再来看下DTM的架构: 整个DTM架构中,一共有三个角色...->Docker Compose即可添加docker-compose.yml,由于整个项目依赖mysql和DTM,修改docker-compose.yml如下所示,其中定义了三个服务:db,dtm和dtmdemo.webapi...该种方式启动项目是支持断点调试项目,如下图所示: 通过BankAccouts控制器的POST接口,初始化用户1和用户2各100元。...再通过SagaDemo控制器的/api/Transfer接口,进行Saga事务测试。...插入成功但影响条数等于0,说明触发唯一键约束,此时会进行空补偿、悬挂和重复请求判断,若是则直接返回,跳过后续子事务分支逻辑的执行。

    2.3K20

    ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

    可以从上图中看出,区域的功能类似一个小的MVC项目,麻雀虽小五脏俱全,有自己的控制器、模型、视图还有路由设置。...WCF是一个通用的服务架构平台,其设计之初在于创建一个通用的Web Service平台,可以在各种不同的协议(TCP, UDP, HTTP)下使用,仅仅通过EndPoint的配置而不需要修改代码实现就能适应不同的工作环境...WCF也是微软以前很多服务产品的合体。   WCF 里面可以采用模板的方式来实现REST架构风格,但WCF毕竟是一个集大成的平台(或者说是:比较重量级)。...具体的代码,这里我就不过多赘述,相信大家都能看懂。   (6)此时,我们有了一个能工作的Web API了。...该控制器上的每个方法都映射到一个URI,例如下表中所示的前三个方法所对应的URI: Controller Method控制器方法 URI GetAllProducts /api/product GetProductById

    2.8K20

    .net core web api + Autofac + EFCore 个人实践

    最近,从鹏城回江城工作已三月有余,人算安顿,项目也行将上线,算是闲下来了,便想着实践下之前跟进的.net core,刚好把之前练手系统的后端给重构掉,于是,便有了此文。...1)路由 基于WebAPI或者说Rest的路由,我一向倾向于用特性路由,而非MVC默认路由,因为更灵活,也更容易符合Rest模式。来看具体控制器: ?...实际上,路由中不光可以有控制器占位符,还可以有操作占位符,运行时会被操作名称代替,但这里是Rest服务,不是MVC终结点,所以我没有添加控制器方法占位符[action]。   ...,就会发现,DAL中添加消费明细就只有一个往Manifest表中添加消费明细记录的操作,日消费清单Daily表的数据实际上是由SQLserver触发器来自动维护的。...需要说明,EFCore目前是自动实现事务的,所以传统的工作单元啊,应用层面的非分布式数据库事务,已经不用我们操心了。

    1.9K40

    打造一个属于自己的.NET Core项目模板

    可能比较多的方式会是下面三种: 简单粗暴型,打开VS就是右键添加,然后引入一堆包,每个项目添加引用。 脚本型,基于dotnet cli,创建解决方案,创建项目,添加包,添加项目引用。...可以看到种类还是很多的,由于工作大部分时间都是在写WebAPI,所以这里就用WebAPI来写个简单的模板。 下面我们就基于dotnet cli写一个自己的模板。...虽说,现在建项目,已经能把一个大的模板完整的copy出来了,但是始终不是很灵活! 可能有小伙伴会问,明明已经很方便了呀,为什么还会说它不灵活呢? 且听我慢慢道来。...下面更新一下已经安装的模板。 这个时候再去看它的帮助信息,已经可以看到我们加的参数了。...的,添加多了NPgsql这个包。

    1K40

    .NET 实现启动时重定向程序运行路径及 Windows 服务运行模式部署

    日常工作中有时候会遇到需要将程序直接在服务器上运行,而不依赖于 IIS 托管的情况,直接运行有两种方式,一种是部署为 服务模式,另一种则是 直接启动 .NET 发布之后的 exe 文件以 控制台模式运行...WebAPI 及 Web 项目在以 Windows 服务模式部署时的一些注意事项。...方法 /// public class EnvironmentHelper { /// /// 改变工作目录...调整之后我们在启动程序时只要多添加一个参数即可,如下: 只要在原本的启动命令 dotnet d:\Publish\WebAPI.dll 优化为 dotnet d:\Publish\WebAPI.dll...在 Windows 服务管理中也可以看到我们的服务 启动命令和停止命令,和我们日常操作普通服务的命令一样都是 net start 服务名 和 net stop 服务名,如下: 启动: net start

    94620

    在Asp.Net Core中使用ModelConvention实现全局过滤器隔离

    在一个web程序中同时包含了MVC和WebAPI,现在需要给WebAPI部分单独添加一个接口验证过滤器IActionFilter,常规做法一般是写好过滤器后给需要的控制器挂上这个标签,高级点的做法是注册一个全局过滤器...)); }); 但这样做会带来一个问题,那就是MVC部分控制器也会受影响,虽然可以在过滤器中进行一些判断来区分哪些是MVC Controller哪些是API Controller,但是平白无故给...说到这里,很多人会觉得这玩意儿和自定义过滤器看起来差不多,最开始我也这么认为,但经过实际代码调试我发现它的生命周期要比过滤器早的多,或者说根本无法比较,这个家伙只需要在应用启动时执行一次并不用随着每次请求而执行...原因是Asp.Net Core的DI框架帮我们提供了一系列扩展方法来简化Convention的添加不用自己再去转换: ?...总结 总体来说,我通过曲线救国的方式实现了全局过滤器隔离,虽然去遍历目标控制器再手动添加Filter的方式没有那种一行代码就能实现的方式优雅,但我大体来说还算满意,是目前能想到的最好办法。

    1.6K40
    领券