Web Api(1)

由于在学习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部署。

 

本次只是试着使用了一下,还有很多不懂的地方后面将继续学习。

posted @ 2019-12-15 20:22  最爱吃汤圆27  阅读(1630)  评论(0编辑  收藏  举报