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

?

體驗構建學校開放API

2017-01-03 22:23:30金琦
中國信息技術教育 2016年23期
關鍵詞:調(diào)用開發(fā)者短信

金琦

引言

目前,眾多教學管理系統(tǒng)的涌現(xiàn),給學校教育帶來便利的同時也帶來了不少挑戰(zhàn)。很多學校多個信息系統(tǒng)由于時間和開發(fā)公司的差異,造成各教育教學系統(tǒng)數(shù)據(jù)相互隔離,無法進行共享。未來,數(shù)據(jù)將是學校發(fā)展中最為重要的資源,目前這樣的態(tài)勢勢必會讓學校收集、分析、轉(zhuǎn)移教學數(shù)據(jù)消耗大量的人力物力,還要面對其間產(chǎn)生的各種錯誤。因此,建設學校的新型架構數(shù)據(jù)中心,向?qū)W校所有應用提供基礎數(shù)據(jù),同時能接收學校所有應用所產(chǎn)生的數(shù)據(jù),打通其中的數(shù)據(jù)通道,對數(shù)據(jù)進行有效整理和挖掘,是每所有現(xiàn)代教育情懷的學校的努力方向。建立自己的開放API就是一種有效的嘗試,API是應用程序編程接口(Application Programming Interface)三個首字母的縮寫,而開放API(Open API)是服務型網(wǎng)站常見的一種應用,網(wǎng)站的服務商將自己的網(wǎng)站服務封裝成一系列API開放出去,供第三方開發(fā)者使用。Amazon和eBay等公司很早就有開放API,但是對應的數(shù)據(jù)往往集中在商品上,與人們的日常互聯(lián)網(wǎng)應用有一定的距離。真正推動整個互聯(lián)網(wǎng)開放的發(fā)端,應該算是Google在2005年開放Google Maps的API,目前谷歌公司提供的API相對完整,大部分谷歌服務都有相對應的API可以調(diào)用,下面我示范如何使用經(jīng)典的Google Maps API將谷歌地圖加入到網(wǎng)頁中(如圖1)。

考慮到PHP作為一種卓越的腳本語言,具有跨平臺(可運行在UNIX、LINUX、Windows、Mac OS下)、低消耗(PHP消耗相當少的系統(tǒng)資源)、運行效率高等優(yōu)點,本文中范例前后端網(wǎng)頁也由PHP來說明:bj.php用來顯示復選列表,用戶只要選擇目標位置,然后點擊瀏覽地圖,就會調(diào)用map.php,其中下頁圖2所示的bj.php第7~10行為PHP代碼,定義了一個名為bj_address的數(shù)組來存放目標位置的地址信息,若景點個數(shù)多,此處也可以改用數(shù)據(jù)庫存放相關數(shù)據(jù)。第13~19行為插入一個表單,里面包含有四個位置的復選列表和一個瀏覽地圖按鈕,各個項目的value屬性被指定為各個位置的地址信息,當用戶單擊“瀏覽地圖”按鈕后,就會執(zhí)行action屬性指定的map.php表單處理頁面。

我們再來觀察下頁圖3所示的處理程序map.php,原本的地圖功能,可能會讓讀者覺得程序代碼很繁雜,其實不然!這主要是因為有了Google Maps API的幫助,其中第4行就是載入一個Google Maps API;第7~14行定義一個initialize函數(shù),負責地圖的初始化工作,建立屬于google.maps的相關類,并調(diào)用第15~28行codeAddress()函數(shù)。第32行的value就是用戶在bj.php頁面中選中的目標位置的地址,使得第16行就是利用這個元素獲取要在地圖上做標記的地址。

在我們對開放API有了初步體驗后,下面就構造了這樣一個情境模式:為適應移動辦公需要,對學校原有的Web郵件系統(tǒng)建立一個開放API,以方便移動應用開發(fā)公司調(diào)用作為范例來大致描述通過PHP連接原有數(shù)據(jù)庫、生成JSON格式的開放API、調(diào)用開放API這一過程。

過程示范

1.連接原有數(shù)據(jù)庫

創(chuàng)建一個連接學?,F(xiàn)有MS SQL SERVER的func.php,圖4所示的關鍵代碼表明其是連接到數(shù)據(jù)庫服務器(10.8.32.89)上的SCHOOL_ERP的數(shù)據(jù)庫。在該數(shù)據(jù)庫中只需配給“apiuser”用戶讀取權限即可(注:PHP在高版本上需要使用sqlsrv擴展對Sql Server進行連接,安裝過程略)。

2.構建JSON格式的開放API

用readmail.php來構建,下頁圖5截取了關鍵之處并做出解釋,第3~4行為應用上一級目錄下的func.php,設置輸出到瀏覽器的類型和編碼,第5行表示以GET方式獲取提供的教師姓名傳遞給name變量,轉(zhuǎn)換name的編碼為gbk,由于學校原始數(shù)據(jù)庫是微軟SQL Server,當前編碼為gbk編碼,第10行是一句符合我們預期API調(diào)用的一條SQL查詢語句,第11~13行是為了防止SQL注入,創(chuàng)建一個預處理語句,將$name的值綁定到上面$sql變量里的“?”部分,第14行定義了一個數(shù)組,用于保存后面輸出的數(shù)據(jù)。第15~18行用while遍歷數(shù)據(jù),其中sqlsrv_fetch_array函數(shù)獲取了執(zhí)行后的結(jié)果,賦值到$result變量中,對數(shù)據(jù)中的send_dt數(shù)據(jù)進行處理,把處理好的數(shù)據(jù)保存到$arr數(shù)組里。第19~20行將獲得的數(shù)據(jù)編碼轉(zhuǎn)換為utf8(防止輸出時數(shù)據(jù)亂碼),使用json_encode函數(shù),封裝獲得的結(jié)果,并且輸出。

這時就生成了一位教師的最近5封郵件信息的API接口“http://wx.ourschool.cn/cjcxcs/api/getemail.php”,在此我們可以嘗試直接將某位教師的姓名作為name變量傳遞參數(shù)代入,向開放API發(fā)出GET請求。獲得JSON格式的文本后,將文本按照JSON格式解碼,如圖6所示。

開放API的數(shù)據(jù)格式一般有JSON(JavaScript Object Notation)和XML(EXtensible Markup Language)兩種,考慮到簡潔性和輕量性,我們通常會使用JSON,它方便人們進行閱讀和編寫,同時也方便了機器進行解析和生成。讀者可以到http://json.cn網(wǎng)站了解和在線解析JSON結(jié)構(如圖7)。

3.通過AJAX構建終端顯示

通過使用AJAX(異步JavaScript和XML)異步獲取的方式調(diào)用上述的API,進而解析接口返回的JSON,就可以在相關Web App里顯示用戶頁面(如下頁圖8)。

以上是根據(jù)學校現(xiàn)有的動態(tài)網(wǎng)站進行了接口開發(fā),以方便后繼應用進行開發(fā),但還有一些情況是依靠學?,F(xiàn)有條件無法進行后繼開發(fā)的,最為典型的就是短信應用,如我校微信報修平臺需要將維修信息發(fā)給修理師傅,除了微信通知外,為了能更及時傳送,又加上一條運營商維修短信通知,功能如下頁圖9所示。

這時我們可到國內(nèi)在線某API數(shù)據(jù)供應商處進行體驗申請短信API。申請后,會在后臺看到該API的配置服務信息,需要指出的是,商業(yè)化的API請求通常為HTTP GET方式,返回數(shù)據(jù)為JSON格式,為了防止API被濫用或惡意使用,要求每個API使用者都要申請一個API Key,每個API Key對應唯一的一個API使用者,下頁圖10中的AppKey即為我校的一個API Key。

接下去可以創(chuàng)建一個短信模板,如“【報修平臺】收到的新的來自#name#的報修信息,分類為:#app#”,#號中間的變量由開發(fā)者自行定義(如圖11)。

然后根據(jù)圖12的主要代碼段創(chuàng)建一個短信通知頁面,這樣接到報修后可短信快速通知維修人員維修。第3行表示篩選出接收短信權限的對象,用戶報修后,數(shù)據(jù)庫會執(zhí)行一條插入語句,進而觸發(fā)到第10行的短信供應商API接口處傳遞數(shù)據(jù),第13~16行為具體的傳遞數(shù)據(jù)(API KEY、發(fā)送號碼、自定義的模板號和模板中顯示的變量數(shù)據(jù))。

上例在演示學校構建自身基礎API的同時,還借用了成熟商業(yè)平臺的開放API,我想這種模式可能也正是開放API的意義所在。如果教育工作者能意識到這種開發(fā)模式是一種挑戰(zhàn),一種創(chuàng)新,更是一種機會,有意識地讓學校開發(fā)的教育教學資源系統(tǒng)更符合這個時代需要的標準和規(guī)范,直接將標準化后的數(shù)據(jù)提供給開發(fā)者,將極大地提高開發(fā)者的工作效率,也將提高學校的信息化效率。如果還能在上級教育主管機構統(tǒng)籌規(guī)劃下,形成區(qū)域和校際間的一個完整、統(tǒng)一的教育教學數(shù)據(jù)開放API,則能讓區(qū)域乃至全國教育教學數(shù)據(jù)趨向完整、開放,進而真正做到直接交換和共享信息,勢必會開啟一個教育類創(chuàng)新的新時代。

猜你喜歡
調(diào)用開發(fā)者短信
核電項目物項調(diào)用管理的應用研究
道歉短信
當代工人(2019年4期)2019-04-22 12:04:26
LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
測控技術(2018年5期)2018-12-09 09:04:46
代發(fā)短信
當代工人(2018年21期)2018-03-06 12:41:08
基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
16%游戲開發(fā)者看好VR
CHIP新電腦(2016年3期)2016-03-10 13:06:42
iOS開發(fā)者調(diào)查
電腦迷(2015年8期)2015-05-30 12:27:10
iOS開發(fā)者調(diào)查
電腦迷(2015年4期)2015-05-30 05:24:09
利用RFC技術實現(xiàn)SAP系統(tǒng)接口通信
安卓開發(fā)者之煩惱
永善县| 东乡县| 广灵县| 周宁县| 托克托县| 大同市| 吉首市| 定南县| 沙湾县| 五指山市| 北票市| 玉溪市| 石嘴山市| 分宜县| 黑水县| 图片| 疏附县| 赫章县| 乡城县| 浦北县| 宣汉县| 象州县| 洪湖市| 长葛市| 金湖县| 东丰县| 浙江省| 利辛县| 稷山县| 黔西| 长乐市| 改则县| 岢岚县| 建瓯市| 宣威市| 望城县| 博野县| 平阴县| 日照市| 原阳县| 株洲市|