.NET WebApi 实战第一讲

        互联网的发展已经深入到我国几十年,从90年代开始,陆陆续续的诞生一批互联网精英及土豪士绅,也有一大批IT从业者乘着这次的大潮实现了人生的转变,或大富大贵、或小有成就、或小有资产,改变了自己乃至整个家庭的命运,实现了小康。近些年的移动系统大热,再一次引领互联网的高速发展及辉煌,业务也覆盖到了更多的未曾涉及到的范畴,物联网、车联网或者什么联网等等,逐步的走向系统替代人工的初期目标。我们也因为移动互联网的发展,使的我们的生活品质得以提高,方便快捷。比如手机支付、比如乘坐公共交通、比如人脸支付等等,移动互联网引领着我们不断的改进生活的方式、不断的创新、不断的进步。

       支撑APP、微服务等发展的先决条件就是要有一个稳定而又强大流畅的服务或者说是服务器。而服务器端的开发,又五花八门,服务器是为终端提供服务(数据服务、业务逻辑实现)的PC集群,你这样理解就好了。而可以为服务器开发服务的高级语言多如牛毛,像JAVA、C#、PHP等等。。。。今天我们就来选择其一,C#下的.NET  Framework来一起学习研究研究。本系列教程以vs 2019为开发IDE,其他历史版本,可能略微有出入。

      好了,不多说了,开干。而至于VS的安装,客官请去微软官网下载安装,这里就不一一说明了,网上也有一堆安装教程,非常简单。打开vs 2019,你应该会看到如下的页面:

点击红框所示的"创建新项目(N)"

APS.NET Core Web应用程序是最新一代跨平台解决方案,它里面也有对应的一套Core WebApi

ASP.NET Framework是上一代解决方案,目前应用更广,我们选择此框架做为我们实战的基础模板。

如上图所示,选择好后,点击右下角的下一步进入:为项目起个名字,选择项目存在的位置,选择框架。点击右下角的创建:

 这个页面,我们需要注意一下:我们选择空的项目模板,同时勾选右侧"添加文件夹和核心引用"下面选择WebApi。是否要创建单元测试,视你的个人要求而定。

扫描二维码关注公众号,回复: 10876459 查看本文章

注意虽然下面有一个WebApi的模板,我们不选择的原因就是因为这个模板生成了部分页面文件,干扰新手的学习。所以,我们选择空的项目模板,一步一步的搭建环境。

点击创建,这样,我们就创建了一个完整的项目。

下面我们来看看项目的样貌,研究了解每一个目录的作用及使命。

 运行项目:点击界面上方的IIS Express按钮,启动项目:

 如不出意外,你将看到如下的报错页面:

而对于错误页面中间的信息,你暂时不要理会:因为这个配置文件是通过浏览器默认列举你文件目录的,目前阶段你不必理会

那么为什么会报错呢?因为我们浏览器运行起来,却找不到对应的服务指令,自然报错了。再来看看我们的Controller目录,里面啥也没有。而我们项目跑起来,URL的构成必须是如下的格式:

而我们目前浏览器窗口却显示的是:https://localhost:44378/

这路径明显不对,可是,我们后面的路径应该是什么?不急,不急,我们这就来创建服务路径 。首先停止我们的服务,再添加相应的页面控制器,如果你不停止,是无法添加的。

在项目目录的Controller文件夹上右键,依次如下添加新的服务控制器:

控制器名称命名为:AppApiController.cs ,注意上图的截图中我的命名名称多了Values,你重新命名,注意一下,尽量和我的保持一致为AppApiController.cs。我们打开此控制器,分析其中的代码:

我们可以看到,每一个方法已经自动注释了调用路径,我们现在运行起来项目,看看:

没错,这就是我们要的效果。再来仔细分析一下这些路由的构成:

首先就是它对于大小写是不第三的,你的控制器命名为大小写,而URL全为小写,也是没有问题的,你可以任何修改大小写,你看看结果便知。

默认生成的Get、POST、PUT等方法,通过URL调用的时候,不需要显明的写出来,如果你写出来反而会报错:

https://localhost:44378/api/appapi/Get

按照路由规则,控制器后面的值应该为默认方法的参数,而通读本控制器,并不存在存在某个方法输入一个string类型的默认方法,所以,就报错了。根据报错信息,你就能理解错误的具体原因:

反倒是定义了一个输入类型为Int的方法,我们把URL改进一下,看看:

https://localhost:44378/api/appapi/10
注意:此HTTP请求等价于:https://localhost:44378/api/appapi?id=10这就是key=value的形式,更常见。key的字面量是由后端接口决定,如果后端接口定义的输入变量int year,那么你请求接口时的连接就应该是https://localhost:44378/api/appapi?year=10

有了正确的响应,并且返回了public string Get(int id)方法的返回值。如果你将这人方法改造一下,将输入int id改为 string id,那么这个连接“https://localhost:44378/api/appapi/Get”就可以正常响应,不再报错:

所以,得出结论:

http请求的时候,后面的参数类型必须与服务接口中定义的一致,接口定义的是什么类型,你就传什么类型,如果传的类型不对,就会报错,这种因为类型引起的错误,有时候排查起来非常难受,并且查出来,让会嘲笑一下自己。。好吧,我们尽量少的去嘲笑自己,还行?

本节只重点讲解了WebApi的创建,简单的演示了服务的调用。下一节,我们将进行数据库连接,所有业务数据都与数据库互联演示。本节内容到此为止,请同学们回过头来,多研究,认真领悟一翻。

下一讲:使用EF技术连接数据库并实现接口查询返回

发布了45 篇原创文章 · 获赞 9 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/yunhuaikong/article/details/105533303