API介紹8:實現

第八章:實現

我們做到了!現在我們已經知道了關于API需要知道的一切...起碼已經達到入門級別了。所以,有了這些必備知識以后,如何好好利用它們呢?本章,我們看看如何將知識轉化為可以工作的軟件。

從計劃到產品

正如我們在本課程中所看到的,一個API交互包括兩端。當我們在編碼層次討論這個問題的時候,我們實際要說的是我們需要兩個程序來實現API。一個程序遵循了API的規定,我們就說該程序實現了API。在我們的披薩店的例子中,一個可以使用正確的頭部和數據格式發送請求到 /orders 終端的客戶端就是實現了披薩店API的客戶端。

服務器端的程序是發布API的公司的責任。回到第6章,我們看一下設計API背后的流程。有了計劃之后,公司下一步要做的就是編寫遵循該設計的軟件來實現他們的服務器端。最后一步是把程序放到一臺服務器上。

公司會和服務器軟件一起發布API的文檔。文檔是解釋如何使用API的一個或多個文件——通常是網頁或PDF。它包含這樣一些信息,像使用哪種認證方案,哪些終端是有效的,代碼片段,以及一個可以充當有效的終端的交互式控制臺。文檔很重要因為它是構建客戶端的指引。對API感興趣的人可以從這里學習API如何工作。

手頭有了文檔之后,作為客戶端有多種方式可以開始使用API。我們現在嘗試其中的三種。

HTTP客戶端

一種開始使用API的簡單方式是使用HTTP客戶端,HTTP客戶端是一種可以快速構建HTTP請求進行測試的通用程序。你指定URL、頭部和主體,然后程序會以適當的格式發送到服務器。這種程序有不同的形式,包括web應用,桌面軟件,瀏覽器擴展以及其他更多形式。


Google Chrome擴展——Dev HTTP Client的截圖

通用HTTP客戶端的美妙之處在于你不用寫程序就可以使用。通過本課程學到的技能,你就有能力閱讀公司的API文檔并且確定為了獲得想要的數據你需要構造什么樣的請求。這種平緩的學習曲線使得在快速和一次性的任務中使用通用客戶端非常棒。

然而,這個方法也有不少不利的方面。首先,通常你無法保存你的工作。當你關閉程序之后,你的請求就被忘記了,下次你需要的時候必須再次構建。另一個缺點是你通常無法對返回的數據做更多的工作,只能閱讀這些數據。最好的情況下,你也只能把數據保存到一個文件中,然后是否要對它做一些有趣的事情就由你決定了。

寫代碼

為了真正利用API的力量,你最終需要個性化的軟件。這就到了編程上場的時候了。作為一個訓練課程,我們不會嘗試涉及軟件開發的方方面面,但是我們可以給你一些指引,告訴你寫一個API客戶端需要知道哪些。

首先需要通曉一門編程語言。編程語言有很多,各有自己的優勢和劣勢。為了簡單起見,你最好選擇一門解釋型的語言(JavaScript,Python,PHP,Ruby或者類似的語言 ),不要選擇編譯型語言(C或C++)。

如果你不確定應該選擇哪門語言,一個很好的縮小選擇范圍的方法是找一個你想實現的API,看看公司是否提供了客戶端庫。庫是API所有者發布的已經實現了他們的API的客戶端的代碼。有時候庫是可以供個人下載的,而且會打包成一個SDK(軟件開發工具包)。使用庫可以節省時間,因為你不需要閱讀API文檔,不需要構造原始的HTTP請求,你可以簡單的拷貝粘貼幾行代碼然后就有了一個可以工作的客戶端。

選定了語言之后,你需要確定代碼要在哪里運行。如果你是要自動完成你自己的任務,在自己的工作電腦上運行軟件是可以接受的。更常見的是,你可能想在更適合充當web服務器的電腦上運行代碼。有很多方案可供選擇,云服務(比如亞馬遜云服務),甚至數據中心里你自己的物理服務器都可以。

第三個重要的決定是確定你要對這些數據做什么。把結果保存到文件中是很簡單的,但是如果你想把數據保存到數據庫或者發送到另一個程序,事情就變得復雜了。從數據庫中取出數據發送給API也會是一個挑戰。

這時候我們可以暫停一下,提醒你不要被這些新的信息嚇到。當你第一次嘗試的時候,不要期望了解如何實現API的一切細節。欣慰的是我們知道有人可以幫我們(開源社區,可雇用的開發者和潛在的項目合作者),而且網上有很多資源可以幫助我們學習。

當你熟悉了這些基礎之后,在軟件開發這個廣闊的領域還有很多話題需要學習。就目前來說,如果你成功的學習了一門編程語言,獲取了一個庫并且讓它運行起來,你就值得慶祝了。你會在充分利用API的路上走得非常好。

給Zapier一個機會

如果編程超出了你目前的技能范圍,或者時間不允許,我們知道還有一個使用的工具可以讓你輕松擁有和API交互的能力。好吧,你可能已經看到它了:它就是Zapier。我們的開發者平臺提供了一種方式讓你可以實現一個可以與之交互的API,它會作為Zapier上的一個應用運行。通過點擊按鈕,填寫我們的表單,你就幾乎可以實現你希望的任何API。

讓開發者平臺容易使用的秘密在于我們已經為你完成了很多編程工作。Zapier有合適的代碼發送請求,你要做的就是補充細節。想像一下使用這個平臺有點類似于使用一個通用的HTTP客戶端;你告訴我們一些終端,然后我們完成其他的工作。額外的好處是一旦Zapier和一個API通信之后,對于如何處理返回的數據你有很多選擇。而且,如果你被難住了,歡迎你聯系我們友善的支持團隊,那里的API專家隨時準備幫助你。

結論

在本課程中我們已經有了很大的進步。我們從“什么是客戶端”這樣的問題開始,以如何構建他們的想法結束。及時你決定不嘗試實現一個API,我們還是希望當它們出現在談話中時你會感覺愉快。現在你已經知道什么是API,它能做什么,還有如何使用它們來讓你的生意獲益。

也許你在經營一家公司,并且看出了為顧客提供一個API的價值?;蛘吣憬洺W隽钊擞憛挼模ㄙM時間的工作,你希望能夠自動完成這些任務。不管情況是怎么樣的,我們希望你能發現你獲得的知識是有價值的。請將本課程分享給所有你認為會從中獲益的人,還有把這句話傳播開來,API酷斃了!

譯自

Chapter 8: Implementation

(完結)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容