999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

校園社交網(wǎng)絡(luò) API設(shè)計(jì)方法

2014-03-14 05:19:50仲瑋范軼代成琴
中國教育網(wǎng)絡(luò) 2014年6期
關(guān)鍵詞:校園資源用戶

文/仲瑋 范軼 代成琴

校園社交網(wǎng)絡(luò) API設(shè)計(jì)方法

文/仲瑋 范軼 代成琴

近些年來,隨著社交網(wǎng)絡(luò)的發(fā)展,以校園信息服務(wù)為載體的校園社交作為一種新興媒介開始流傳起來。校園社交網(wǎng)絡(luò)基于社會(huì)網(wǎng)絡(luò)關(guān)系思想,將校園網(wǎng)作為平臺(tái),實(shí)現(xiàn)了校園網(wǎng)內(nèi)信息應(yīng)用的社會(huì)化數(shù)據(jù)集成。

在校園社交網(wǎng)絡(luò)里,為廣大開發(fā)者和校園用戶提供開放數(shù)據(jù)的開發(fā)平臺(tái)至關(guān)重要。使用開發(fā)平臺(tái)提供的API(Application Programming Interface 應(yīng)用程序接口)可以讓用戶無須通過Web接口就可以連接到校園社交網(wǎng)絡(luò)應(yīng)用之中,并被允許在這個(gè)平臺(tái)上創(chuàng)建新的應(yīng)用。使得Web、桌面、移動(dòng)應(yīng)用的多種操作成為可能,程序開發(fā)者的分工更加明確,降低了開發(fā)成本。因此,設(shè)計(jì)一個(gè)合理的API系統(tǒng)將有助于豐富校園網(wǎng)應(yīng)用,構(gòu)建以校園社交為核心的校園信息體系。

API設(shè)計(jì)方法

目前API的設(shè)計(jì)主要存在SOAP和REST兩種設(shè)計(jì)方案。前者基于SOA集成,表現(xiàn)了不同軟件構(gòu)件之間通過各種過程或方法進(jìn)行的交互,屬于面向服務(wù)架構(gòu);后者則將每個(gè)軟件構(gòu)件看作一組數(shù)據(jù)庫表,屬于面向資源架構(gòu)。由于REST具有輕量級應(yīng)用、輸出人工可讀的結(jié)果集、易于構(gòu)建、無需工具支持等優(yōu)點(diǎn), 目前各大互聯(lián)網(wǎng)廠商如Google、Twitter等多采取REST方案來構(gòu)建API。

REST是英文Representational State Transfer(表述性狀態(tài)轉(zhuǎn)移)的縮寫,是近年來迅速興起的,一種基于HTTP、URI以及XML這些現(xiàn)有協(xié)議與標(biāo)準(zhǔn)的,針對網(wǎng)絡(luò)應(yīng)用的設(shè)計(jì)和開發(fā)方式。它可以降低開發(fā)的復(fù)雜度,提高系統(tǒng)的可伸縮性。REST架構(gòu)風(fēng)格最初由Roy T. Fielding(HTTP/1.1協(xié)議專家組負(fù)責(zé)人)在其2000年的博士學(xué)位論文中提出, 其核心是可編輯的資源及其集合。每個(gè)資源或者集合有一個(gè)惟一的URI,系統(tǒng)以資源為中心,構(gòu)建并提供一系列的Web服務(wù)。HTTP就是該架構(gòu)風(fēng)格的一個(gè)典型應(yīng)用。從其誕生之日開始,它就因其可擴(kuò)展性和簡單性受到越來越多的架構(gòu)師和開發(fā)者們的青睞。

RESTFUL API設(shè)計(jì)理念

對于校園應(yīng)用而言,良好的API設(shè)計(jì)可以提高校園第三方應(yīng)用開發(fā)者的效率,易于用戶使用,并具有良好的擴(kuò)展性。因此,我們的RESTFUL API設(shè)計(jì)方案應(yīng)遵循以下基本原則:

1. 將系統(tǒng)上的所有事物都抽象為資源,每個(gè)資源對應(yīng)惟一的資源標(biāo)識(shí);

2. 簡單直觀,將通用邏輯以組件的方式展示,遵循RESTful風(fēng)格;

3. 開發(fā)人員友好性。API是一種為開發(fā)人員設(shè)計(jì)的產(chǎn)品,因此API的設(shè)計(jì)應(yīng)對第三方程序開發(fā)者保持友好,如盡可能支持多種數(shù)據(jù)返回格式,在瀏覽器調(diào)試中易于輸入等;

4. 安全性。盡可能使用標(biāo)準(zhǔn)的安全協(xié)議,這樣在跨系統(tǒng)對接時(shí)會(huì)有更好的兼容性。同時(shí)充分考慮私有API的認(rèn)證授權(quán)和安全控制,必要的API接口做好訪問頻率控制。

具體設(shè)計(jì)方案

校園社交網(wǎng)絡(luò)的主要用戶群體是校園師生用戶,均需通過校園統(tǒng)一身份認(rèn)證進(jìn)行登錄,因此API的身份驗(yàn)證也應(yīng)以此為基礎(chǔ),通過分享用戶信息、社會(huì)關(guān)系、消息、頭像等方式將信息擴(kuò)展到其他第三方系統(tǒng)。采用分層的方式對公共業(yè)務(wù)進(jìn)行設(shè)計(jì)并提供有效的API供模塊通信。在REST風(fēng)格中,資源標(biāo)識(shí)結(jié)構(gòu)和URI模式的設(shè)計(jì)與API設(shè)計(jì)一脈相承,其設(shè)計(jì)如圖1所示。

1.HTTP Method 是REST利用Http實(shí)現(xiàn)的對資源的CURD功能,它提供了一個(gè)操作資源的統(tǒng)一接口,包括GET/POST/PUT/DELETE等。對于任何資源的操作都應(yīng)該對應(yīng)到前面方法中。

2.REST被稱為面向資源的開發(fā),這說明對資源的抽象是設(shè)計(jì)API的一個(gè)重要環(huán)節(jié)。{resources}用于表示校園社交網(wǎng)絡(luò)API系統(tǒng)的主體資源名,如用戶屬性、標(biāo)簽、頭像、社會(huì)關(guān)系等,{action_ name}則用于抽象對于資源的操作,同時(shí)與HTTP Method相對應(yīng),根據(jù)HTTP請求實(shí)現(xiàn)不同的對象操作。

圖1 RESTFUL API的URI設(shè)計(jì)

社交網(wǎng)絡(luò)中的資源,在描述了某種事物的同時(shí),有時(shí)還存在著一定的層次結(jié)構(gòu)關(guān)系。比如,系從屬于某個(gè)學(xué)院,班級從屬于系;學(xué)生信息可以從屬于班級,也可以從屬于某個(gè)公寓。當(dāng)資源有這種層次關(guān)系的時(shí)候,需要使用復(fù)合的URI模式來幫助開發(fā)者更好地理解和設(shè)計(jì)資源。

3.開發(fā)者在發(fā)送一個(gè)REST API的請求同時(shí),針對相同的資源根據(jù)場景的不同可能會(huì)希望得到不同的返回形式。比如使用javascript時(shí)希望得到JSON的返回,而使用C++時(shí)可能希望得到XML的返回。為了提供這種完備的內(nèi)容協(xié)商能力,在這里設(shè)計(jì)了{(lán)format}參數(shù),使用URI的模式直接用于定義響應(yīng)和請求中的資源表述格式。

4.參數(shù)。在API中URI應(yīng)設(shè)計(jì)的盡量簡短,這里使用參數(shù)的方式用于結(jié)果過濾、排序、搜索、分頁等相關(guān)功能。但過多的參數(shù)會(huì)導(dǎo)致URL的可讀性變差,更有甚者,可能會(huì)導(dǎo)致URL過長,使得API請求無法執(zhí)行。因此參數(shù)的設(shè)置應(yīng)在合理的范圍內(nèi)使用,必要時(shí)設(shè)置別名來代替常用的過濾、搜索請求。

URI是RESTFUL API設(shè)計(jì)中非常重要的一個(gè)環(huán)節(jié),在通過URI定義好了資源與允許的操作之后,為實(shí)現(xiàn)RESTFUL API,還須在以下幾方面進(jìn)行設(shè)計(jì)。

API出錯(cuò)處理

REST架構(gòu)的一個(gè)基本要求是保證操作語義的可見性,因此應(yīng)正確地將API執(zhí)行結(jié)果以及失敗的原因以HTTP狀態(tài)代碼的方式傳達(dá)給客戶程序,詳細(xì)描述操作是否成功、如果出錯(cuò)原因是什么,并采取相應(yīng)的后續(xù)動(dòng)作。API的錯(cuò)誤碼可以分為客戶端錯(cuò)誤和服務(wù)器端錯(cuò)誤兩部分。API應(yīng)該至少將所有的客戶端錯(cuò)誤以json形式返回。如圖2所示。

API緩存處理

API的緩存處理是提高API使用效率的重要措施。包括model查詢結(jié)果緩存、URL頁面緩存、類對象緩存等。最簡單的方式可以采用HTTP自帶的緩存框架。HTTP 頭中有“Cache-control”字段來控制如何使用緩存,常見的取值有 private、no-cache、max-age、must-revalidate 等。

還有一種緩存方案,即通過支持條件請求與電子標(biāo)簽ETag來處理緩存。當(dāng)用戶請求數(shù)據(jù)內(nèi)容時(shí),系統(tǒng)在返回?cái)?shù)據(jù)的同時(shí),在HTTP頭中,將返回根據(jù)服務(wù)器內(nèi)容的最后修改時(shí)間Last-Modified,或者根據(jù)服務(wù)器內(nèi)容生成電子標(biāo)簽ETag。當(dāng)用戶再次請求數(shù)據(jù)時(shí),就可以在HTTP請求中使用If-Modified-Since或者If-None-Match 頭信息,把上次請求得到的時(shí)間戳或者電子標(biāo)簽傳給服務(wù)器。當(dāng)收到一個(gè)有條件請求的HTTP頭的REST請求的時(shí)候,我們的程序需要將收到的時(shí)間戳或者電子標(biāo)簽與當(dāng)前內(nèi)容作比較,就可以很容易地知道用戶請求的數(shù)據(jù)內(nèi)容在這段時(shí)間是否發(fā)生過修改,并根據(jù)比較結(jié)果返回給用戶最新內(nèi)容,或者用HTTP響應(yīng)碼304告知用戶,內(nèi)容沒有變化。

RESTful API的安全設(shè)計(jì)

圖2 json形式錯(cuò)誤信息返回示例

安全設(shè)計(jì)是API設(shè)計(jì)中不可回避的一項(xiàng)工作,在這里我們使用OAuth協(xié)議用于身份認(rèn)證。校園社交網(wǎng)絡(luò)的API相當(dāng)于授權(quán)外部應(yīng)用訪問社交網(wǎng)絡(luò)站內(nèi)資源,OAuth協(xié)議正適用于此。OAuth協(xié)議將與校園網(wǎng)已建設(shè)的統(tǒng)一身份認(rèn)證系統(tǒng)相結(jié)合最終為面向最終用戶維度的API提供授權(quán)。對于身份認(rèn)證之后的安全控制則主要通過應(yīng)用控制,采用基于角色的方式來實(shí)現(xiàn)資源的訪問授權(quán)。

除了OAuth認(rèn)證,還可以輔助使用其他的安全措施。比如對全部參數(shù)進(jìn)行簽名防止篡改;在請求中增加一次性的Token,或者短時(shí)間內(nèi)有效的Token;對內(nèi)容加密防止數(shù)據(jù)泄露等等。

隨著云計(jì)算和移動(dòng)計(jì)算的興起,許多企業(yè)愿意在互聯(lián)網(wǎng)上共享自己的數(shù)據(jù)、功能,對于校園社交網(wǎng)絡(luò)也是如此。開放API是大勢所趨,通過使用API,開發(fā)人員將可很方便地訪問社交網(wǎng)絡(luò)中的的海量內(nèi)容,可以以編程的方式訪問一個(gè)特定用戶的信息,使得信息的傳遞存在了無限可能性。

RESTFUL API是校園社交網(wǎng)絡(luò)系統(tǒng)的基礎(chǔ)構(gòu)架,因此在設(shè)計(jì)時(shí)需要從整個(gè)社交網(wǎng)絡(luò)設(shè)計(jì)的高度進(jìn)行思考。REST把軟件架構(gòu)的概念與網(wǎng)絡(luò)架構(gòu)的概念相互結(jié)合起來,使得之成為可測量的分布式系統(tǒng)的理想狀態(tài),提高了信息數(shù)據(jù)的處理能力和通訊效率。

(作者單位為哈爾濱工業(yè)大學(xué)網(wǎng)絡(luò)與信息中心)

OpenSSL漏洞安全提示

OpenSSL是當(dāng)今應(yīng)用最廣泛的加密軟件之一,因此漏洞影響的范圍非常廣泛,幾乎包括所有利用openssl組件來實(shí)現(xiàn)ssl功能的服務(wù),具體有:

1. 使用Apache及Nginx兩款軟件的https服務(wù)(tcp 443端口);

2. 使用ssl協(xié)議的加密pop3(tcp 995端口),加密SMTP(tcp 465端口)、IMAP(tcp 994端口)的郵件系統(tǒng);

3.使用ssl協(xié)議并使用openssl做組件的vpn(tcp 443端口及1194端口)設(shè)備;

4.使用ssl協(xié)議的加密及時(shí)通訊XMPP(tcp 5222端口);

5.其他基于openssl組件開發(fā)的應(yīng)用加密程序,如在線交易程序等;

需要說明的是,這個(gè)漏洞會(huì)泄露系統(tǒng)中原本加密的用戶名和密碼,并且即便被攻擊過也不會(huì)在系統(tǒng)上留下任何痕跡,因此如果您的系統(tǒng)使用openssl來加密登錄過程的話,除了要及時(shí)安裝補(bǔ)丁程序外,還需要對攻擊帶來后續(xù)影響進(jìn)行評估。根據(jù)我們的檢測,只要您的系統(tǒng)存在該漏洞并且不是補(bǔ)丁發(fā)布后馬上進(jìn)行升級的,十之八九都被攻擊者光顧過了,為安全起見建議通知從漏洞出現(xiàn)(4月7日晚)到您系統(tǒng)升級完后這段時(shí)間里登錄過系統(tǒng)的用戶更改密碼,避免賬號(hào)被他人利用。

(供稿:鄭先偉)

猜你喜歡
校園資源用戶
基礎(chǔ)教育資源展示
一樣的資源,不一樣的收獲
資源回收
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
校園的早晨
琴童(2017年3期)2017-04-05 14:49:04
春滿校園
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
開心校園
主站蜘蛛池模板: 国产精品制服| 国产成人综合日韩精品无码不卡| 首页亚洲国产丝袜长腿综合| 97人妻精品专区久久久久| 自拍中文字幕| 色综合五月婷婷| 久久一日本道色综合久久| 成人午夜免费观看| 国产欧美日韩va| 亚洲五月激情网| 色综合五月婷婷| 亚洲天堂首页| 人妻少妇乱子伦精品无码专区毛片| 亚洲人成色77777在线观看| 黄片一区二区三区| 亚洲欧美在线看片AI| 亚洲熟女中文字幕男人总站| 亚洲成人播放| 天天综合天天综合| 日本久久久久久免费网络| 国产精品欧美在线观看| 97亚洲色综久久精品| 中文字幕无码av专区久久| 精品福利视频导航| 视频二区欧美| 久久女人网| 国产午夜精品鲁丝片| 欧美不卡视频一区发布| 国产欧美网站| 欧美成一级| 一级毛片高清| 囯产av无码片毛片一级| 六月婷婷激情综合| 国产久草视频| 国产女人水多毛片18| 婷婷五月在线| 亚洲人成电影在线播放| 无码中文字幕精品推荐| 蜜桃视频一区| 精品无码人妻一区二区| 麻豆精品在线| 欧美成人精品一级在线观看| 国模极品一区二区三区| 国产丝袜无码精品| 国产精品视屏| 99青青青精品视频在线| 男女男精品视频| 日韩毛片免费观看| 亚洲成av人无码综合在线观看| 色有码无码视频| 国产你懂得| 22sihu国产精品视频影视资讯| 天天色综网| 色噜噜久久| 亚洲欧美成人影院| 中文字幕在线观看日本| 欧美成人午夜视频免看| 91在线无码精品秘九色APP| 日韩欧美国产精品| 永久免费无码日韩视频| 色噜噜在线观看| 欧美无遮挡国产欧美另类| 99精品一区二区免费视频| 国产成人精品亚洲日本对白优播| 成年人国产视频| 久久99国产视频| 亚洲欧美日韩中文字幕在线一区| 国产精品久久久精品三级| 欧美亚洲国产日韩电影在线| 久久综合色88| 国产无吗一区二区三区在线欢| 亚洲成在人线av品善网好看| 亚洲人视频在线观看| 四虎国产精品永久一区| 强乱中文字幕在线播放不卡| 高清无码一本到东京热| 露脸国产精品自产在线播| 国产成人AV综合久久| 日本精品视频一区二区| 91久久偷偷做嫩草影院电| 在线观看国产精品一区| 丁香六月综合网|