基于Web API的气象业务数据接口的开发和实现
作者:吴孟春 周捷 朱忠勇
来源:《电子技术与软件工程》2016年第23期
        摘 要
        Web API是核心ASP.NET平台的一部分,让你能够快速而方便地创建Web服务,以便为HTTP客户端提供API。本文简单的介绍了Asp Web API 相关的概念,及它的优点和应用环境,并通过Web API接口开发的实例和方法,阐述如何在asp MVC中使用Web API实现气象数据接口的开发,并以详细的步骤和代码展示了应用Web API接口框架的开发过程。
        【关键词】Web API WCF API控制器 气象业务数据
        本文简单介绍了如何在asp MVC中使用Web API实现气象数据接口的开发,并以完整步骤和代码展示了应用Web API接口框架的开发过程。
        1 前言
        在气象局域网中的业务数据应用可通过数据库和文件直接调用,但为外部门提供数据共享和服务时通常采用数据接口,这样扩展性好,便于维护,而且有利于数据源的安全。如通常应用的Web service和WCF数据接口。而如今互联网和无线网络的快速发展,为气象应用和服务提供了更多的平台,如手机终端、平板电脑以及多媒体预警信息发布终端,网站、手机APP、等。面对越来越多的基于互联网模式的应用,Web API便是一种快捷的提供数据服务的接口方式。
        2 Web API
        2.1 Web API简介
        Web API是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端如浏览器,手机和平板电脑等移动设备终端以及传统的桌面应用程序等框架,如图1所示。Web API是一种用于在.NET Framework上构建RESTful应用程序的理想平台,构建HTTP服务提供强大的数据服务。
        2.2 Web API和WCF的比较
        WCF和Web Service都是基于SOAP的,主要的数据格式是XML,支持HTTP协议,主要部署在IIS上,且配置比较复杂;而Web API则是一个轻量级的HTTP服务的新框架。如果所部署的服务是基于TCP的,需支持更多的传输机制,可选择WCF;如果平台不支持SOAP和WS-*协议的时候,则可选择Web API。也就是说,构建一个跨平台的服务,使用WCF,如通过专线构建与水利局、环保局的数据服务;构建基于因特网的服务,那么就使用Web API,如通过互联网的、手机终端等。
        3 气象数据接口设计
        由于气象业务的不断扩展,气象、手机和平板电脑的移动APP,安装在乡镇、社区和公共场所的气象预警信息发布终端;安装公共场所的多媒体信息机等等这些通过互联网的气象应用和服务终端都需要实时的气象数据,那么构建Web API,可解决远程的数据实时传输和交互,就可为各应用提供实时的数据接口服务。
restful接口调用实例        3.1 业务数据服务
        常用于数据应用服务的气象业务数据主要有实况数据、天气预报、台风信息、预警信息
及各种气象分析数据,这些数据主要用于WEB网站、、各移动终端、桌面应用平台等。图2为气象业务数据流程图。
        在应用服务流程图中,构建Web API层作为一个气象数据的公共的接口层,可以保证接口提供的应用层的数据一致性。再通过业务逻辑层整合数据存储和数据访问层,调用数据库所存储的各类数据。这样构建的Web API的接口层就能为所有接入的客户端提供丰富的数据接口,从而实现快捷灵活的接入。
        3.2 Web API的开发
        Vs2012以后的版本都已引入了ASP.NET Web API技术。Web API用于提供REST风格的WebService,新建立的WebAPI项目,包含主要的Models、Views、Controllers等文件夹和Global.asax文件,和MVC项目一样。Models目录项主要用于保存Service和Client交互的对象,这些对象会被转换为Json数据格式进行数据传输;Controllers目录中所对应的Controller继承API的ApiController,用于添加方法,用于提供各种数据服务;Global.asax用于配置路由规则。
        3.2.1 建立Web API项目
        运行Vs2012,新建项目,选择ASP MVC4 Web应用程序,再选择Web API
        3.2.2 建立控制器文件,添加action
        在建立的项目里面有自动生成的webapi模版,其中App_Start文件夹下WebApiConfig.cs和RouteConfig.cs文件主要配置api的路由信息。Controllers文件夹下的文件为api的实现文件。在Controllers文件夹下新建控件器文件QxDataApiController.cs,我们可以在Controller目录上创建更多的应用API控制器,其中的QxDataApi是Controller在路由中使用的名称。在文件中新加入两个Get方法的api为例,一个不带参数的方法,一个带参数的方法。
        ※不带参数的方法
        //返回当天市区天气预报
        [System.Web.Http.HttpGet]
        public tqyb wztqybdata()
        {
        tqyb tq=null;
        SqlConnection sqlconn= new SqlConnection();
        sqlconn.ConnectionString = configuration.AppSettings.Settings["sqlconn"].Value.ToString().Trim();
        SqlCommand sqlCmd = new SqlCommand();
        sqlCmd.CommandType = CommandType.Text;
        sqlCmd.CommandText = "SELECT TOP(1) station,Forecasttime,forecastdata FROM TqybData ORDER BY ID DESC";