
随着上位机开发技术的广泛应用,很多小伙伴会有上位机与MES等系统进行数据交互的需求,这时候,我们就需要了解WebAPI的相关技术。
什么是WebAPI?
WebAPI是一个简单的构建HTTP服务的新框架,用于对接各种客户端(浏览器,移动设备),在.Net平台上,WebAPI是一个开源的、理想的、构建REST-ful服务的技术。
WebAPI部署在哪里?
WebAPI部署在IIS中,用于给外部应用提供数据。
为什么要使用WebAPI?
WebAPI本质是网络应用程序接口,网络应用可以通过API接口,可以实现存储服务、消息服务、计算服务等能力,利用这些能力可以进行开发出强大功能的web应用。
创建WebAPI
1、打开VS2019,创建一个新项目,项目模板选择ASP.NET Web应用程序(.NET Framework),如下所示:
2、创建完成后,取一个项目名称,然后点击下一步,在下面的页面中,选择模板为Web API,如下所示:
3、创建项目需要一点时间,由于我们选择好了Web API,所以创建好的项目界面自动会添加好Models/Controllers/Views等文件夹,如下所示:
4、在Models文件夹下,创建一个实体类,如下所示:
5、在Controllers文件夹下,右击创建控制器,这里注意要选择Web API 2控制器模板,名称为THMonitorController,继承ApiController,如下所示:
6、在THMonitorController控制器中,创建一个实体集合对象,同时添加两个Get开头的方法,如下所示:
public class THMonitorController : ApiController
{
THMonitor[] THMonitors = new THMonitor[]
{
newTHMonitor(){Name="温度1",Value="22.3",Unit="℃",Desc="温度1"},
newTHMonitor(){Name="温度2",Value="22.1",Unit="℃",Desc="温度2"},
newTHMonitor(){Name="温度3",Value="32.3",Unit="℃",Desc="温度3"},
newTHMonitor(){Name="温度4",Value="22.3",Unit="℃",Desc="温度4"},
newTHMonitor(){Name="湿度1",Value="42.3",Unit="%",Desc="湿度1"},
newTHMonitor(){Name="湿度2",Value="42.1",Unit="%",Desc="湿度2"},
newTHMonitor(){Name="湿度3",Value="42.3",Unit="%",Desc="湿度3"},
newTHMonitor(){Name="湿度4",Value="42.3",Unit="%",Desc="湿度4"},
}
public IEnumerableGetAllTHMonitor()
{
returnTHMonitors
}
public THMonitor GetTHMonitorByName(string name)
{
THMonitor contact = THMonitors.FirstOrDefault(item => item.Name == name)
if(contact == null)
{
throw new HttpResponseException(HttpStatusCode.NotFound)
}
returncontact
}
7、这样,最简单的一个WebAPI项目就完成了,直接运行即可,运行地址为https://localhost:44382/。
Web API测试
使用Postman接口工具来进行测试。
Postman是一款功能强大的HTTP调试与模拟插件。获取安装包,后台回复 Postman
1、启动Postman之后,在地址栏输入https://localhost:44382/,如果要获取所有的数据,请求方式选择Get,地址栏后面加个api/THMonitor,点击Send,可以看到返回的数据,结果显示为JSON格式。
2、如果想要查询某个数据,可以加个参数,地址栏为https://localhost:44382/api/THMonitor?Name=温度1,查询结果如下所示:
3、地址栏格式可以参考项目中的WebApiConfig.cs文件:
我是新阁上位机开发的付老师,用我的专业,成就你的梦想!
-END-
Visual Studio 2019.net core 3.0
具体步骤如下图:
此处我们选择API(新手不推荐选择空项目,选择API系统会为我们自动创建WebApi需要的一些配置文件等),Https配置这一项我们暂时不勾选,目前我们不配置Https。
F5运行项目,然后就可以看到微软为我们写好的一个天气预报示例webapi了,这里只有一个Get请求示例,返回值为json格式。
注意: services.AddControllers()和 endpoints.MapControllers() 方法成对出现, 这是.net core3.0中的最新写法
ConfigureServices方法
用来向容器中注册服务,注册好的服务可以在其他地方进行调用.
Configure方法
用来配置中间件管道,即如何响应http请求.
1 右键删除系统默认创建的 WeatherForecastController.cs 和 WeatherForecast.cs
2 新建一个控制器,命名: UserController.cs
问题来了,为啥直接给打开 weatherforecast ,而且还404了,别急,往下看。
(┬_┬)怎么还是404?别急继续往下看
上面增加 action 虽然能达到想要的结果,但是每次新建一个 Controller 都有写个 action 万一要是忘记了又要忙乎半天,有没有一劳永逸的办法呢?
继续往下看:
1.首先去掉Controller里的 Route 和 ApiController
2.修改 Startup.cs ,增加路由模版:
今天就到这里,后期继续完善我们的webapi。
https://github.com/xiaxiaoqian/NetCore3.0-WebApi
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)