由于在学习Web Api没有了解过MVC,觉得有些吃力。很多基础的东西都会一并记录下来。
Web API 的意思是使用HTTP协议并通过网络调用的API。
API的意思软件外部接口。
在实际的开发中,大多数的Web API并不是RESTful API.
在 Web API 中,模型是表示应用程序中的数据的对象。
控制器是处理 HTTP 请求的对象。
本次使用的是VS2019+ASP.NET CORE 3.0。
1.通过VS2019创建一个ASP.NET CORE 3.0的项目之后,将自带的天气预报的控制器和.CS删除。
2.自己建立一个控制器。起名为UserController.
3.Usercontroller 需要配置Route路由。以及创建一个Get请求的方法HelloWorld并 返回一个Hello World。
ControllerBase 大部分的Web Api都应该继承这个基类。
[ApiController]。这个属性是应用于Controller的,它能够使得Web API开发体验更好.
当使用这个属性之后,启用:
1.将会要求使用属性路由,不能通过Startup的Configure方法统一配置路由模板。
2.自动HTTP 400响应。Action方法传入model含有验证错误,自动触发。
3.推断参数的绑定源。
IActionResult 代表Action方法返回的结果。
4.设置launchsettings.json配置文件,此时启动方式也从IIS变成了WebApi的名称。
launchUrl:格式和之前设置的对应。api/控制器名字/action名字
5.启动项目看结果。我刷新了一次看到Get请求。返回确实是函数中return的结果
6.appsettings.json 和 appsettings.Development.json之间的关系 意味着ASP.NET.Core可以使用多个环境.
在Program.cs中Main方法负责配置和运行整个Web程序。
Main方法调用下面这个方法创建了一个Host并调用其中Run方法。
在Startup中,IConfiguration被注入了,那么可以允许使用配置信息。
Configuration方法意思为用来向容器中注册服务,注册好的服务可以在其他地方进行调用.
Configure方法意思为用来配置中间件管道,即如何响应http请求.每一个请求都会按照代码的顺序穿越所有添加的中间件.(顺序很重要)
代理服务器 IIS为我们做了两件事情1. 解析我们的程序例如aspx 2.将解析后的资源代理出去
.NET CORE也需要走这两步
应用程序服务 和 代理服务
.NET CORE本身自带了一个kestrel的应用程序服务
我们如何进行代理服务呢
补充 选择无托管代码是因为请求进入到IIS,在到.NET CORE后之后 自己的kestrel的应用程序服务会进行解析 然后借用了IIS的代理服务作用,将我们的程序代理出去.
如果只需要代理服务 那我们可以很轻松的使用Nginx去作为代理服务替换掉我们的IIS部署。
本次只是试着使用了一下,还有很多不懂的地方后面将继续学习。