国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web API的氣象業(yè)務(wù)數(shù)據(jù)接口的開發(fā)和實(shí)現(xiàn)

2017-03-06 20:20:09吳孟春周捷朱忠勇
電子技術(shù)與軟件工程 2016年23期

吳孟春 周捷 朱忠勇

摘 要

Web API是核心ASP.NET平臺(tái)的一部分,讓你能夠快速而方便地創(chuàng)建Web服務(wù),以便為HTTP客戶端提供API。本文簡(jiǎn)單的介紹了Asp.net Web API 相關(guān)的概念,及它的優(yōu)點(diǎn)和應(yīng)用環(huán)境,并通過Web API接口開發(fā)的實(shí)例和方法,闡述如何在asp.net MVC中使用Web API實(shí)現(xiàn)氣象數(shù)據(jù)接口的開發(fā),并以詳細(xì)的步驟和代碼展示了應(yīng)用Web API接口框架的開發(fā)過程。

【關(guān)鍵詞】Web API WCF API控制器 氣象業(yè)務(wù)數(shù)據(jù)

本文簡(jiǎn)單介紹了如何在asp.net MVC中使用Web API實(shí)現(xiàn)氣象數(shù)據(jù)接口的開發(fā),并以完整步驟和代碼展示了應(yīng)用Web API接口框架的開發(fā)過程。

1 前言

在氣象局域網(wǎng)中的業(yè)務(wù)數(shù)據(jù)應(yīng)用可通過數(shù)據(jù)庫(kù)和文件直接調(diào)用,但為外部門提供數(shù)據(jù)共享和服務(wù)時(shí)通常采用數(shù)據(jù)接口,這樣擴(kuò)展性好,便于維護(hù),而且有利于數(shù)據(jù)源的安全。如通常應(yīng)用的Web service和WCF數(shù)據(jù)接口。而如今互聯(lián)網(wǎng)和無(wú)線網(wǎng)絡(luò)的快速發(fā)展,為氣象應(yīng)用和服務(wù)提供了更多的平臺(tái),如手機(jī)終端、平板電腦以及多媒體預(yù)警信息發(fā)布終端,網(wǎng)站、手機(jī)APP、微信等。面對(duì)越來(lái)越多的基于互聯(lián)網(wǎng)模式的應(yīng)用,Web API便是一種快捷的提供數(shù)據(jù)服務(wù)的接口方式。

2 Web API

2.1 Web API簡(jiǎn)介

Web API是一種應(yīng)用接口框架,它能夠構(gòu)建HTTP服務(wù)以支撐更廣泛的客戶端如瀏覽器,手機(jī)和平板電腦等移動(dòng)設(shè)備終端以及傳統(tǒng)的桌面應(yīng)用程序等框架,如圖1所示。Web API是一種用于在.NET Framework上構(gòu)建RESTful應(yīng)用程序的理想平臺(tái),構(gòu)建HTTP服務(wù)提供強(qiáng)大的數(shù)據(jù)服務(wù)。

2.2 Web API和WCF的比較

WCF和Web Service都是基于SOAP的,主要的數(shù)據(jù)格式是XML,支持HTTP協(xié)議,主要部署在IIS上,且配置比較復(fù)雜;而Web API則是一個(gè)輕量級(jí)的HTTP服務(wù)的新框架。如果所部署的服務(wù)是基于TCP的,需支持更多的傳輸機(jī)制,可選擇WCF;如果平臺(tái)不支持SOAP和WS-*協(xié)議的時(shí)候,則可選擇Web API。也就是說,構(gòu)建一個(gè)跨平臺(tái)的服務(wù),使用WCF,如通過專線構(gòu)建與水利局、環(huán)保局的數(shù)據(jù)服務(wù);構(gòu)建基于因特網(wǎng)的服務(wù),那么就使用Web API,如通過互聯(lián)網(wǎng)的微信、手機(jī)終端等。

3 氣象數(shù)據(jù)接口設(shè)計(jì)

由于氣象業(yè)務(wù)的不斷擴(kuò)展,氣象微信、手機(jī)和平板電腦的移動(dòng)APP,安裝在鄉(xiāng)鎮(zhèn)、社區(qū)和公共場(chǎng)所的氣象預(yù)警信息發(fā)布終端;安裝公共場(chǎng)所的多媒體信息機(jī)等等這些通過互聯(lián)網(wǎng)的氣象應(yīng)用和服務(wù)終端都需要實(shí)時(shí)的氣象數(shù)據(jù),那么構(gòu)建Web API,可解決遠(yuǎn)程的數(shù)據(jù)實(shí)時(shí)傳輸和交互,就可為各應(yīng)用提供實(shí)時(shí)的數(shù)據(jù)接口服務(wù)。

3.1 業(yè)務(wù)數(shù)據(jù)服務(wù)

常用于數(shù)據(jù)應(yīng)用服務(wù)的氣象業(yè)務(wù)數(shù)據(jù)主要有實(shí)況數(shù)據(jù)、天氣預(yù)報(bào)、臺(tái)風(fēng)信息、預(yù)警信息及各種氣象分析數(shù)據(jù),這些數(shù)據(jù)主要用于WEB網(wǎng)站、微信、各移動(dòng)終端、桌面應(yīng)用平臺(tái)等。圖2為氣象業(yè)務(wù)數(shù)據(jù)流程圖。

在應(yīng)用服務(wù)流程圖中,構(gòu)建Web API層作為一個(gè)氣象數(shù)據(jù)的公共的接口層,可以保證接口提供的應(yīng)用層的數(shù)據(jù)一致性。再通過業(yè)務(wù)邏輯層整合數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)訪問層,調(diào)用數(shù)據(jù)庫(kù)所存儲(chǔ)的各類數(shù)據(jù)。這樣構(gòu)建的Web API的接口層就能為所有接入的客戶端提供豐富的數(shù)據(jù)接口,從而實(shí)現(xiàn)快捷靈活的接入。

3.2 Web API的開發(fā)

Vs2012以后的版本都已引入了ASP.NET Web API技術(shù)。Web API用于提供REST風(fēng)格的WebService,新建立的WebAPI項(xiàng)目,包含主要的Models、Views、Controllers等文件夾和Global.asax文件,和MVC項(xiàng)目一樣。Models目錄項(xiàng)主要用于保存Service和Client交互的對(duì)象,這些對(duì)象會(huì)被轉(zhuǎn)換為Json數(shù)據(jù)格式進(jìn)行數(shù)據(jù)傳輸;Controllers目錄中所對(duì)應(yīng)的Controller繼承API的ApiController,用于添加方法,用于提供各種數(shù)據(jù)服務(wù);Global.asax用于配置路由規(guī)則。

3.2.1 建立Web API項(xiàng)目

運(yùn)行Vs2012,新建項(xiàng)目,選擇ASP.net MVC4 Web應(yīng)用程序,再選擇Web API

3.2.2 建立控制器文件,添加action

在建立的項(xiàng)目里面有自動(dòng)生成的webapi模版,其中App_Start文件夾下WebApiConfig.cs和RouteConfig.cs文件主要配置api的路由信息。Controllers文件夾下的文件為api的實(shí)現(xiàn)文件。在Controllers文件夾下新建控件器文件QxDataApiController.cs,我們可以在Controller目錄上創(chuàng)建更多的應(yīng)用API控制器,其中的QxDataApi是Controller在路由中使用的名稱。在文件中新加入兩個(gè)Get方法的api為例,一個(gè)不帶參數(shù)的方法,一個(gè)帶參數(shù)的方法。

※不帶參數(shù)的方法

//返回當(dāng)天市區(qū)天氣預(yù)報(bào)

[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,F(xiàn)orecasttime,forecastdata FROM TqybData ORDER BY ID DESC";

sqlCmd.Connection = sqlconn;

sqlconn.Open();

SqlDataReader sr=sqlCmd.ExecuteReader();

while (sr.Read())

{

tq = new tqyb();

tq.station= sr.GetValue(0).ToString();

tq.Forecasttime =DateTime.Parse(sr.GetValue(1).ToString());

tq.forecastdata= sr.GetValue(2).ToString();

}

sqlconn.Close();

}

※帶參數(shù)的方法

//以站點(diǎn)做為參數(shù),返回站點(diǎn)所對(duì)應(yīng)最新時(shí)次的雨量,氣溫,濕度。

// http://localhost:31087/api/QxDataApi/zdzdata/?station=58659

[System.Web.Http.HttpGet]

public zdzinfo zdzdata(string station)

{

zdzinfo zdz= null;

SqlConnection sqlconn = new SqlConnection();

……….

sqlconn.Close();

return zdz;

}

3.2.3 修改WebApiConfig.cs文件

默認(rèn)的路由路徑是routeTemplate:"api/{controller}/{id}",當(dāng)要寫多個(gè)方法時(shí),就需要修改配置,加入Action。在WebApiConfig.cs文件中配置路由路徑:routeTemplate: "api/{controller}/{Action}/{id}",其中,controller:QxDataApi,action:寫的方法名,id:傳入的參數(shù)。

3.3 IIS下部署WebAPI

在服務(wù)器上安裝了IIS服務(wù),并且安裝了.net4.5。打開IIS信息服務(wù)管理器

右擊網(wǎng)站,點(diǎn)擊添加網(wǎng)站(轉(zhuǎn)化成應(yīng)用程序),配置好后確保應(yīng)用程序池的.net版本是.net 4.5(在IIS里面顯示為4.0);然后點(diǎn)擊高級(jí)設(shè)置,確定我們的應(yīng)用程序池是我們的4.0,然后打開Web.Config在下面增加一行 然后重啟網(wǎng)站,這樣WebAPI就部署完成了。部署后調(diào)用http://服務(wù)器IP/api/QxDataApi/{應(yīng)用方法}。

4 結(jié)語(yǔ)

數(shù)據(jù)是一個(gè)業(yè)務(wù)部門的核心,數(shù)據(jù)共享也是各部門加強(qiáng)合作的一個(gè)重要途徑,而開發(fā)和開放數(shù)據(jù)接口則是解決通過網(wǎng)絡(luò)傳輸數(shù)據(jù)和數(shù)據(jù)訪問的一個(gè)重要方法。當(dāng)前,隨著互聯(lián)網(wǎng)和智能終端應(yīng)用的不斷增多,應(yīng)用Web API技術(shù)開發(fā)輕量級(jí)的數(shù)據(jù)接口是一種基于HTTP服務(wù)、開放性強(qiáng)、數(shù)據(jù)集成高的數(shù)據(jù)共享應(yīng)用方法。

參考文獻(xiàn)

[1]http://www.cnblogs.com/r01cn/p/3772990.html.

[2]https://msdn.microsoft.com/zh-cn/library/hh833994(v%3Dvs.108).aspx.

[3][美]內(nèi)格爾等著,李銘譯.C#高級(jí)編程(第9版)[M].北京:清華大學(xué)出版社,2014:1416-1443.

作者單位

溫州市氣象局 浙江省溫州市 325027

庆城县| 绥滨县| 信丰县| 开封市| 新昌县| 石柱| 邵阳县| 敖汉旗| 东兰县| 恭城| 鸡西市| 宾阳县| 馆陶县| 修水县| 彭州市| 丽江市| 嘉禾县| 团风县| 韶关市| 新宁县| 红安县| 龙南县| 包头市| 翁牛特旗| 西乌珠穆沁旗| 宿州市| 津南区| 紫阳县| 梧州市| 东丰县| 甘谷县| 尤溪县| 芒康县| 永兴县| 阜新| 西华县| 枣强县| 上饶县| 利津县| 嵊泗县| 明溪县|