Open API

Open API即開放API,也稱開放平台。 所謂的開放API(OpenAPI)是服務型網站常見的一種套用,網站的服務商將自己的網站服務封裝成一系列API(Application Programming Interface,套用編程接口)開放出去,供第三方開發者使用,這種行為就叫做開放網站的API,所開放的API就被稱作OpenAPI(開放API)。

簡介

Open API的發展

網際網路套用最重要的就是創意和及時回響變更這兩點。傳統軟體拚專業化和服務質量,但盜版,同質競爭,對用戶個性化需求的服務支持,使得客戶和軟體生產商都沒有得到滿意結果。SAAS模式的提出,其實部分也說明了市場和客戶對於網際網路套用的需求日趨增強,長尾理論更是讓很多草根開發者看到了未來。但網際網路套用是否僅僅就把傳統軟體搬上網就算是適應潮流,改制創新了呢?其實不然,網際網路開放帶來的模仿遠比盜版可怕,軟體的開發周期長,版本疊代周期長,讓傳統軟體開發模式下的開發人員疲於滿足用戶需求。而最重要的創意,傳統軟體專注於專業化,而專業化帶來的就是我們過去說SOA需要解決的那些信息豎井,只有將不同行業的信息串聯打通,原有的數據資源才會體現出其更大的商業價值。因此OpenAPI出現了,起初也許僅僅是網際網路企業內部的一種需求,因為企業規模日趨龐大,組織內部的協作也需要模組化和服務接口化,隨著業務的梳理以及抽象,服務逐漸不僅僅可以滿足內部互動,同時對外開放給一些商業合作夥伴,隨之而來的就是數據資源價值的體現讓開放服務的企業得到了回報。當越來越多的網際網路企業將自己內部的業務作為服務提供給外部使用者的時候,服務的發布,流程的規範化也逐漸形成。REST作為一種輕量級服務互動規範也得到了新一代網際網路企業的認同,加上RSS,JSON,XML已經廣泛使用的多種數據格式,讓OpenAPI有了公共的基礎,也為OpenAPI的開發者集成開發提供了最基本的保障。

當前國外的OpenAPI不論是種類,提供商的服務質量,規範化和使用情況都在這一年裡面有了很大的提升,可以說已經由初期的發展轉到了較為成熟的發展。而國內,就開放的企業,提供商的服務提供成熟度,以及安全等方面的措施,都僅僅只是起步,不過好處在於有可借鑑的模式。不過,明年隨著OpenAPI帶來的商業價值逐漸體現,會讓更多的人加入到網際網路這種新的套用開發模式中來,同時也會給很多開發者,特別是個人和小團隊開發者帶來機遇。網際網路行業就是一個以小博大的行業,當面對成千上萬的新興資源的時候,創意加行動才是成功的基石。

Open API的形態

就現在網際網路上Open API的形態來看,主要分成兩種:標準REST和類REST(也可以叫做RPC形態)。

REST形態主要有這么幾點特點:1.服務地址就是資源定位地址。2.服務操作就是Http請求中的方法類型(GET,POST,DELETE,PUT),這其實是抽象現實當中對於服務的增刪改查操作。Google大部分的RESTAPI就採用了標準的REST風格,服務請求地址URL如下。

這個服務請求地址是用來定位以我阿里巴巴信箱註冊的Google帳號的所有日程安排,通過在Http訊息頭中配置Get、Post、DELETE、PUT可以對我的日程進行操作,而無須登入到Google上去操作。(後面部分的實踐中會有部分介紹如何通過後台Java代碼直接操作)

對於REST形式的討論在網上一直有,但其實這種討論沒有什麼意義,其實就好比爭論吃飯是否一定要用筷子,沒有什麼技術是“萬能藥”,也沒有什麼技術好於不好,只有使用它的人是否有足夠的智慧把它套用到適合的場景中。

對於類REST的形態來說優點在於對於原有系統的改造較小,“當前”用戶使用接受度更高一些,對於邏輯抽象來說更加容易。而REST風格的優點在於,資源容易管理,系統擴展容易,許可權控制可以部分依託於已有的傳輸協定。兩者的缺點其實就是對方的優點。採取什麼模式,其實還是要根據企業本身情況來看,類似於淘寶採用的就是類REST方式,而未來支付寶將會採用REST的方式,前者要改造整個系統架構和資源數據結構基本是不太可能完成的任務,後者對於業務邏輯梳理以及在現有內部SOA架構體系下抽象出REST風格的API並不是一件難事。但最後還是那句話,形態僅僅只是外在,練功之人修煉好內力才是根本,沒有必要為了迎合一種所謂的潮流而去盲目的選擇形態,因為服務提供商將要面對的是高過網站上百甚至更高流量的訪問調用,如何滿足開發者業務以及非業務(穩定,高效,安全)的需求,才是最大的挑戰。

Open API的類型

這裡指的類型,主要從提供服務本身內容來看。當前服務類型主要可以分成三種:數據型,套用型,資源型。

現在很多SNS網站的Open API就是屬於數據型,也就是將自身的數據開放,讓套用開發者根據已有的數據進行二次套用開發。

套用型其實應該是數據型結合的比較緊密,Flickr的圖片搜尋,Google的日程,地圖(地圖數據其實可以自己定義)等等都是屬於套用型。套用型的數據輸入可以是外部的數據,也可以是基於已有的數據資源進行處理。

資源型的代表就是Amazon,AmazonS3就是典型的資源型,當然Flickr的圖片存儲服務等也可以屬於資源型。其實今年還有一個被炒得火熱的話題就是雲計算,在雲計算的背後就是需要提供這么一個資源型的服務,AmazonEC2如果離開了S3,也就無法存在。其實這種類型的服務也是一種未來的趨勢,未來網際網路套用如果要培植草根級開發者,就需要有這樣的溫室,Google的Appengine如果在多一些語言環境版本,那么會讓更多的開發者有夢想實現的空間。

Open API互動的數據格式

對於網際網路套用來說,最大的特點也是最大的優點就是基於Http協定開發成為套用開發的統一標準。對於使用的語言,採用的作業系統和套用部署平台都沒有太多的限制。WebService採用xml作為數據傳輸承載,制定了解析標準(以及後來安全,轉發等標準)為開發者異構系統的信息互動帶來了可能,也成為至今為止套用最廣泛的服務集成方式。而隨著Web2.0發展,RSS、Atom、JSON的大規模套用,對於數據互動格式有了更多的選擇。

服務請求就是標準的Http的請求,對於檔案類上傳的服務採用HTTP Multipart的格式。編碼方式基本都採用UTF-8的編碼方式。

在OpenAPI的數據返回格式方面,大部分的網站優先提供Xml、JSON的數據返回,Google定義的GData就是在Atom基礎上作了擴展,還有一些網站提供了php的數據返回。同時有些網站會在OpenAPI的基礎上作更高的一層封裝,類似於Google Map,可以通過javascript框架來直接使用。

Open API發展趨勢

隨著網際網路發展的多元化,更多的技術人員投入到網路套用的開發上,及網路開發門檻降低化,讓更多的技術人員可以更容易的發展多家網際網路可使用的API,更多的企業網站開發了API加大了技術人員在這方面投入的精力,未來幾年將是API飛速發展的幾年,讓更多企業網站內容更豐富與訪問者更加互動。

相關詞條

相關搜尋

熱門詞條

聯絡我們