API是什么,如何構建API?【應用程序編程接口】
你有沒有聽說過“API”這個詞,并且想知道這是什么意思?您是否有一個模糊的想法,但想了解更多關于您可以使用API??做什么,以及如何構建API?
不要擔心,草根SEO教你快速深入了解并分析API是什么,以及如何構建API與構建其他類型的Web應用程序和網站相似(或不同!),以下是關于API是什么,使它與眾不同以及您自己構建API需要什么的簡短入門。
應用程序編程接口(API)
在基本術語中,API只允許應用程序相互通信。
當人們談論“API”時,他們有時會概括并且實際上意味著“公共可用的基于Web的API返回數據,可能是JSON或XML”,API不是數據庫,甚至不是服務器,它是管理服務器訪問點的代碼。
在這篇文章中,我們將關注這些特定類型的API – 基于Web的API,它們返回數據以響應客戶端的請求。API不是數據庫,它是可以訪問數據庫的應用程序的訪問點。
它們允許我們從外部來源獲取數據。
我們可以向API發送詳細說明我們想要的信息的請求。
API允許我們的站點也改變其他應用程序上的數據,例如,您可能已經在雜項網站上看到“在微信上分享”或“在微博上分享”按鈕,如果您單擊其中一個按鈕,您訪問的網站可以與您的微信或微博帳戶通信,并通過添加新狀態或博文來更改其數據。
誰創建公共的,基于Web的API?
大型科技公司,特別是社交媒體公司經常向公眾提供他們的綜合數據,但API也由政府組織,會議,出版社,軟件創業公司,粉絲團體,電子競技聯盟甚至個人維護,以便分享任何內容。社交媒體內容以瑣事問題,排名,地圖,歌詞,食譜,零件清單等。
簡而言之,任何收集數據的個人或組織都可能有興趣使這些數據可供其他應用程序使用,也許你有一個你想要構建和提供的API?
API如何與“常規”數據庫支持的項目不同
API與數據庫支持(或靜態)Web應用程序或站點的不同之處在于它通常不需要包含前端 – 沒有HTML,需要通過靜態頁面向用戶顯示CSS或動態生成的融合數據的模板具有可重復使用的布局。
通過向服務器發送HTTP請求,通常在沒有前端的情況下完成檢索或寫入數據的請求。
如果您熟悉使用Java,Ruby,PHP,JS通過節點或其他語言構建服務器端應用程序,您可能會認識到需要某些路由:觸發路由處理程序的URL在收到帶有某些數據的請求時發出某些操作。API具有與不同站點相同的路由,它們通常不在這些路由上提供模板。
那么什么是JSON以及我們為什么要使用它?
JSON代表JavaScript Object Notation,基本上是一種表示看起來像JavaScript對象的數據的方式。
讓我們看一個非常典型的餐廳JavaScript對象,它可能看起來像這樣:
“restaurant”:{
“name”:“Fish Witch”,
“address”:“214 NE Broadway”,
“zipcode”:“97232”,
“phone”:“503-000-0000”,
“website”:“ http://www.51517777.com/ “,
”email“:” 852337567@qq.com “
}
整齊,這很容易閱讀 – 我們的數據存儲為鍵/值對,這意味著我們可以在左側看到鍵,在右側看到值,每個Restaurant對象的鍵保持不變,但值不同。一個不同的餐廳將有一個不同的地址,但其屬性將是相同的 – 它將始終有一個名稱,地址,郵編,電話和電子郵件。
JSON 在現代Web應用程序中無處不在,它是可讀,輕量級的,并且它非常適合用JavaScript編寫的應用程序,因為它是 JavaScript。但是,用其他語言編寫的應用程序也可以比較容易地讀取它并生成它 – 包括Java。
這意味著返回JSON的API可以由用Java,Ruby,Python,JS,PHP等編寫的應用程序訪問。這使得API 可擴展且與平臺無關。
如何建立一個API?
構建API完全可以讓任何了解服務器端Web應用程序編程和路由的開發人員都可以使用,例如Java Spark,JavaScript Express,C#,ASP.net,Ruby on Rails等等。
使用GSON庫在Java Spark中構建的簡單API示例
要構建公共API,您需要以下內容:
如上所述的具有某種路由的后端
應用程序可以存儲其數據的數據庫,這可能是您正在運行的數據庫服務器,例如MySQL或Postgres,也可能是一個BaaS(后端即服務)數據庫,如Firebase。
服務器,可能是Internet可訪問的VPS(虛擬專用服務器),您的應用程序可以在其中運行。
如何將API綁定到我的應用程序中?
API可以在很大程度上擴展您的應用程序的功能,添加地圖,天氣數據或其他信息非常有用。
查找提供您要訪問的信息類型的公共API,確保記錄和維護得當,有些網站提供的許多API,例如百度地圖就提供一個展示位置的地圖API。
閱讀文檔以確保API適合您,許多API要求您注冊API密鑰以訪問其數據,或者在您訪問信息之前,他們需要具有您的應用程序需要經過的身份驗證流程。
API使開發人員的生活更輕松
假設您想為iPhone開發應用程序,Apple的iOS操作系統提供了大量的API – 正如其他所有操作系統所做的那樣,讓您更輕松。
例如,如果要嵌入Web瀏覽器以顯示一個或多個網頁,則無需為您的應用程序從頭開始編寫自己的Web瀏覽器,您可以使用WKWebView API在應用程序中嵌入WebKit(Safari)瀏覽器對象。
如果您想從iPhone的相機中捕捉照片或視頻,則無需編寫自己的相機界面,您可以使用相機API在應用程序中嵌入iPhone的內置相機,如果沒有API可以輕松實現這一點,那么應用程序開發人員必須創建自己的相機軟件并解釋相機硬件的輸入。但Apple的操作系統開發人員已經完成了所有這些艱苦的工作,因此開發人員可以使用相機API嵌入相機,然后繼續構建他們的應用程序。
API控制對資源的訪問
API還用于控制對應用程序未必具有使用權限的硬件設備和軟件功能的訪問,這就是API經常在安全性方面發揮重要作用的原因。
相關: 如何阻止網站詢問您的位置
例如,如果您訪問過某個網站并在瀏覽器中看到該網站要求查看您的確切位置的消息,則該網站會嘗試在您的網絡瀏覽器中使用地理定位API,Web瀏覽器公開這樣的API,以便Web開發人員可以輕松訪問您的位置 – 他們可以詢問“您在哪里?”,瀏覽器可以輕松訪問GPS或附近的Wi-Fi網絡以查找您的物理位置。
但是,瀏覽器還會通過API公開此信息,因為它可以控制對它的訪問。當一個網站想要訪問您確切的物理位置時,他們可以通過位置API獲得它的唯一方法。并且,當網站嘗試使用它時,您 – 用戶 – 可以選擇允許或拒絕此請求,訪問GPS傳感器等硬件資源的唯一方法是通過API,因此瀏覽器可以控制對硬件的訪問并限制應用程序可以執行的操作。
同樣的原則也用于現代移動操作系統,如iOS和Android,其中移動應用程序具有可以通過控制對API的訪問來實施的權限。例如,如果開發人員嘗試通過相機API訪問相機,則可以拒絕權限請求,并且應用無法訪問設備的相機。
使用權限的文件系統(如在Windows,Mac和Linux上一樣)具有文件系統API強制執行的權限,典型應用程序無法直接訪問原始物理硬盤。相反,應用程序必須通過API訪問文件。
API用于服務之間的通信
API也用于各種其他服務,例如,如果您曾在網站上看到嵌入了百度地圖對象,則該網站會使用百度 Maps API嵌入該地圖,百度向這些Web開發人員公開這樣的API,然后他們可以使用API??在他們的網站上填充復雜的對象。如果這樣的API不存在,開發人員可能必須創建自己的地圖并提供他們自己的地圖數據,只是為了在網站上放置一個小的交互式地圖。
結論
如果您已經了解了這一點,您將更好地了解API是什么。最終,除非您是開發人員,否則您不需要知道API是什么。但是,如果您看到軟件平臺或服務為各種硬件或服務添加了新API,那么開發人員應該更容易利用這些功能。