標籤:

想問一下什麼是API介面,具體是什麼意思?

一直看到很多關於接API以及API介面的問題,但是不明白具體的意思。看了一下百度上給的答案也不太明白。哪位大神能用比較通俗易懂的語言講一下什麼是API?具體有什麼用?謝謝!


給你舉個特別容易理解的例子

有一天,輪子哥寫了一個專門抓取知乎小黃文的AI,而他每天都會查閱小黃文列表並且點贊。恰好你也是小黃文愛好者,那麼輪子哥的賬號對你來說就是API介面,你要做的唯一事情就是關注輪子哥賬號,每天只需要查閱輪子哥的動態就能看到小黃文,但是不用關心輪子哥到底是用什麼方法找到這麼多小黃文的。

話說輪子哥別打我~~(つд?)


思考這個問題的朋友,相信都已從定義得知,API就是介面,就是通道,負責一個程序和其他軟體的溝通,本質是預先定義的函數。各位答主也已經舉了很多直觀的例子。這裡想從另外的角度,談一談好的API,希望對大家有用。譬如我們去辦事,窗口就類似一個API,如果對於某一件不簡單的事情,這個窗口能做到讓我們「最多跑一次」,「只蓋一枚章」,這個API就是不錯的。(當然,API不太一樣,適用介面隔離原則,即使用多個隔離的介面,如用戶註冊與用戶登錄分別寫兩個介面,可以提高程序設計靈活性。)

但我們知道,現實中「最多跑一次」還很困難,需要有關部門把內部各種流程、數據通道梳理清楚,讓這個窗口很容易拿到各種數據幫助我們。所以說,設計很好的API,也是不容易的。

這裡還有一個來自設計人員的解讀,更注重強調API包含計算和邏輯判斷:假設物流中「貨物」是數據,存放貨物的「總倉庫」是資料庫,「店鋪」是我們的網站、App。頁面上顯示的內容、數字,以及用戶的操作請求和結果都是需要不停搬運的「貨物」——數據,則負責調配分配打包的中轉站就是API,店鋪小哥直接從中轉站取貨就好。

由上,API的作用也就很清楚:

- 對於軟體提供商來說,留出API,讓別的應用程序來調用,形成生態,軟體才能發揮最大的價值,才能更有生命力。(同時別人也看不見代碼,不傷害商業機密。)

- 對於應用開發者來說,有了開放的API,就可以直接調用多家公司做好的功能來做自己的應用,不需要所有的事情都自己操刀,節省精力。

雲計算、共享經濟時代,API就是技術服務商為客戶提供服務的方法。例如,網易雲基於十多年IM技術積累打造的通信與視頻服務,開發者通過集成客戶端 SDK 和雲端 Open API,即可快速實現強大的通信與視頻功能。


把某些功能封裝好,方便其他人調用。

調用的人可以很方便使用這些功能,並且可以不需要知道這些功能的具體實現過程。

接API就是按照作者規定的流程去調用這些功能。


通俗的講API 就是前後端間的聯通。假象你去一家餐廳,桌子上有一份菜單,廚房能為你提供菜單上的菜式。那麼我們還缺少一個能和後廚聯繫的人,所以服務員MM就是去告訴後廚你選的菜,再將菜帶回到你的桌子上。MM帶著你的request去告訴system,然後將response 帶回給你。

來看一個API案例,airline system ,你訂機票,你將你的航程提交,會訪問網站的database,來看你選擇的日期,座位是否是可選。但如果你不是在他的網站上訂機票,你是在一個匯總不同的航班信息的online travel service 上,那麼這個service 調用了 前面airline system 的API 。這個介面就像上面例子的服務員MM,帶著你的要求去airline system 上 收集信息 ,然後帶回到online travel service 上 。所以你就把它想像成你的服務員MM在前後端間交付數據,創建聯繫。


簡單地說,用普通的話來說,就是模塊介面。比如,電燈是一個模塊,電流是一個模塊。想要電燈亮起了,就要鏈接電流和電燈。電燈和電流間就需要一個介面,把電燈插上去,通電就可以用了。但是,懂電流的電工完全可以不用知道怎麼造電燈泡,做電燈泡的不需要知道電流怎麼產生。


簡單來說就是函數。

比如你寫了一個庫,裡面有很多函數,如果別人要使用你這個庫,但是並不知道每個函數內部是怎麼實現的。使用的人需要看你的文檔或者注釋才知道這個函數的入口參數和返回值或者這個函數是用來做什麼的。對於用戶來說 ,你的這些函數就是API。

API(Application Programming Interface應用程序編程介面) 是一些預先定義好的函數,目的是提供應用程序以及開發人員基於某軟體或硬體得以訪問一組常式的能力。


第一,介面interface,在計算機領域是指兩個不同事物之間交互的地方,大可以到兩個完整的不同系統,小可以到兩段程序。所以這個I就這麼理解。

在這個基礎上,人和程序交互的地方,叫做UI,user interface,所有人輸入的包括滑鼠鍵盤觸摸屏聲音輸入都算。

那麼程序和程序交互的就叫做API,所有非人對非人交互都通過API進行交互,所謂交互,其實就是傳遞數據,觸發功能。

再比如兩個理工大學的宿舍舍友搞基,交互的地方可以叫做AI(ASS interface)也可以叫做GI(Gay interface)


API是什麼?又到了看優達菌科普漲姿勢時間!看完這篇,再也不用不懂裝懂了!

我最近跟一位 Techstars 的創業家聊天時,問了她一個問題:「你們公司的 API 是什麼?」 這聽起來是個挺奇怪的問題,但其實並不是。

每家創業公司都有一個面向外界介面。有些介面非常簡單,比如說 Google,你只要輸入關鍵詞搜索就好;有些介面複雜一些,比如在 Amazon 上買東西,你可以瀏覽商品、搜索商品、添加商品到購物車、下訂單、請求退款,等等。

即使你不是工程師或是產品經理,思考你的公司會向外界提供什麼 API 也是很有幫助的。這能夠使你對自己的業務是什麼以及為什麼有更加清晰的認識。

API 思維幫助你保持最簡和清晰。

API 是什麼?

API(Application Programming Interface)即應用程序介面。你可以認為 API 是一個軟體組件或是一個 Web 服務與外界進行的交互的介面。而我們在這裡要談論的,是作為一家公司如何跟外界進行交互。從另一個角度來說,API 是一套協議,規定了我們與外界的溝通方式:如何發送請求和接收響應。

讓我們拿網站上常見的複選框(checkbox)作為例子。複選框的介面允許你選擇或者取消選擇它。

/check -- causes checkbox to be checked

/uncheck -- causes checkbox to be unchecked

再舉個例子,Digital Ocean(VPS 供應商)提供的一次性啟動 10 個伺服器的 API 可能長成這樣:

/launchServers?numServers=10 -- starts running servers in the cloud.

在這個例子中,launchServers 命令允許用戶指定要啟動的伺服器的數量。絕大多數服務都支持這樣的自定參數,一是更靈活,二是復用性好。要是啟動 10 個伺服器和 20 個伺服器有兩個不同的命令,那就太蠢了,因為它們本質上是一樣的。

商業API 又是什麼?

設計你的商業 API 時,可以從你的業務有哪些關鍵概念入手來考慮相關的命令,這樣會比較方便。思考:你的用戶們可以做哪些事情?下面是一些簡單的例子:

http://google.com/search?term=techstars

http://amazon.com/browse?category=books

http://amazon.com/buy?bookId=bcustomerId=c

http://uber.com/orderCar?location=loccustomerId=c

http://twitter.com/postTweet?text=tuserId=u

http://facebook.com/friend?userId=ufriendId=f

現在的服務大多都運行在雲上,通過 HTTP 協議與外界交互。這不是太直觀,因為我們和用戶看到的都是界面美觀友好的 APP。但實際通過 HTTP 傳輸的是這些命令。它們非常重要,因為這些最底層和直接的介面最終決定了你的用戶能夠如何使用你的服務。通過這樣的思考,我們才能透過人機界面理清業務的核心。

如何設計你的商業API?

現在讓我們把注意力集中到你的公司。開始創業時,你有一大堆事情要做:尋找和理解創始人與市場之間的契合,跟用戶溝通,思考你們獨有的見解和優勢,市場策略,等等等等。除此以外,設計商業 API 也是你在早期就應該做的事情之一。

花點時間研究 HTTP 協議吧(真的不難)!在開發你的 MVP(Minimum Viable Product,最簡可行產品)之前,你就要把 API 設計好了。

設計 API 可以幫助你理清自己的業務。你會在這個過程中決定 MVP 中會包含哪些東西,不包含哪些東西。你會給某些命令更高的優先順序。最後,拿一張紙把設計好的 API 寫下來,你就知道自己是提供了太多還是太少。

儘可能地將你的 API 設計得簡單和優雅。不要考慮應該添加什麼,而是想想應該去掉什麼。

有了基礎的 API 以後,跟客戶和團隊溝通起來就方便多了。這將為你接下來打造 MVP 提供堅實的基礎。

當你設計出令人滿意的 API 之後,就去實現它吧。一個一個讓原始 API 能通過 HTTP 被訪問。沒錯,你現在還不需要花哨的界面。在實現的過程中,你會對自己的業務有更深的了解。

隨著業務增長,升級你的 API

隨著你的業務進化和增長,你的 API 也需要作出改變。持續地更新和改善它。可以擴充它,但要 「矜持」 一點。最偉大的公司都有著簡單的 API。

想一下 Google,它提供了一個非常簡單的介面,但內部的工作原理是無比複雜的。類似地,喬布斯總是驅動 Apple 公司來不斷簡化用戶界面。Apple 的產品往往通過簡單的界面來隱藏背後的工程複雜度和獨創性。

「你會希望你的業務越簡單越好,隱藏在介面背後的服務越有價值越好。」

在業務增長的過程中,一些子業務可能會演化出它們自己的 API。你可能會有公共介面和內部介面。這時將介面保持得簡單而整潔就開始凸顯價值了。不斷鞭策自己去實現和使用簡單的介面。

「你的業務本身永遠是你的 API 的第一個也是最大的用戶。」

通常伴隨著業務增長,用戶訪問你的服務的方式也會越來越多。你可能同時有桌面版應用和移動端應用,短消息服務,機器人,iOS 和 安卓應用,等等。這些都是你的 API 的用戶,也是你的業務的用戶。

我們生活在一個雲服務和自動化的時代。每家互聯網巨頭,Google、Amazon、Facebook 等,都為他們的服務提供了 API。而在未來,所有的服務都將在一個圖形界面以外擁有編程介面。隨著人工智慧和自動化逐漸進入我們的世界,越來越多的請求和訪問會在這些雲服務和 API 之間發生。如果你打算創業,為了準備如此激動人心的未來,你可以從思考和實現自己的 API 做起。

本文由優達學城(Udacity)編譯,翻譯:章凌豪,原文參考自 http://alexiskold.net。


Web APIs for non-programmers

相信題主問這個問題並不僅僅是想得到一個泛泛的概念。上面這個鏈接詳細介紹了何為API(Application Programming Interface),為什麼我們需要API,API的工作原理,並有附有大量API示例。你邊看可以邊自己動手去體驗真正的Web API長什麼樣,該怎麼去用。


按照我的理解,生活中有一些比較直觀的API,如微信錢包裡面你的第三方服務。換句話說,你可以從微信裡面直接登入摩拜,去掃單車騎, 可以從微信直接登入滴滴,去打車,可以從微信直接登入JD,去剁手。 實現這些連接的,就是API---應用程序介面。


你寫一個函數給別人用,別人拿過來直接就可以調用。

但是你不想別人看到你的函數邏輯,也不想有局限性(你用Java寫的函數,調用方可以用Python調用),你就把他包裝了下,用http協議,然後別人通過你提供的URL來調用你的函數

其實介面就這麼簡單。


api是aplication prossessor interface 即應用程序介面,是你的系統對其他人開放的一個窗口吧。其他人通過這個介面可以訪問你的系統,你返回一些對其他人有用的數據。


看到問題描述中是寫到「一直看到很多關於接API以及API介面的問題,但是不明白具體的意思。看了一下百度上給的答案也不太明白」,因此我猜想題主可能是以為互聯網相關從業人員,也因此可能會在各種會議上聽到程序猿討論到「這裡要加一個API」,「我們暫時的API還不能實現這個功能」之類的狀態,因此我在這裡嘗試用5分鐘講明白什麼是API。

在百度裡面搜索,API的解釋為「API(Application Programming Interface,應用程序編程介面)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟體或硬體得以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。」

這樣看來似乎唯一能看懂的就是「API=介面」。

介面,似乎就像是「黑客帝國」,「攻殼機動隊」裡面那種在人腦後面連一根線,然後就能夠通過那根線獲得各種能力的東西。就像是英吉利海峽隧道那樣,直接可以實現大眾從歐洲往返英國的需求。這樣說來,其實API就是一個實現XXX的通道而已

如同京東在倉庫里碼放成幾層樓高的貨物,也會在用戶下單之後被智能倉儲系統分揀到不同的城市的物流線路上,由機械手和各種高科技實現物流的配送過程,提高質量與效率。

在統籌布局,建設一張四通八達、布局合理倉儲網路的同時,京東不斷升級和優化倉儲中心的各個工作單元,提高「點」的質量和效率。每一件貨物進入京東倉庫都會經過「入庫、上架、揀貨、複核、打包」等作業流程,最後轉入物流配送環節,如果不能夠將這些環節標準化、規範化,商品在倉儲環節就很有可能受到損害。

目前投入運行的亞洲一號一期工程,建築面積約為10萬平方米,分為立體庫區、多層閣樓揀貨區、生產作業區和出貨分揀區,「亞洲一號」的倉庫管理系統、倉庫控制系統、分揀和配送系統等整個信息系統均由京東自主開發,自動化、智能化技術的採用大大提升了效率,降低了人為因素對商品品質的影響。以「出貨分揀區」為例,因為採用了自動化的輸送系統和代表目前全球最高水平的分揀系統,分揀處理能力達16000件/小時,分揀準確率高達99.99%。

所以如果進行這樣的類比,那API就是類似物流倉庫中的智能倉儲系統一樣,幫助用戶看到那些原本存放在資料庫中文件的工具了。

可能這樣只是講清楚了什麼是API,那在講一下我們生活中哪些地方背後都有API實現吧~

比如我們在百度中搜索天氣,背後是調用了氣象局的數據。通過調用API,滿足了用戶輸入「天氣+城市」就可以看到天氣的需求。

比如在企查查(企查查)裡面搜索公司名字,背後則是調用了企業信息查詢的數據。通過調用API,滿足了用戶輸入「企業名稱」就可以看到企業信息資料的需求。

不僅國內的信息可以通過API進行查詢,海外的信息也可以通過API介面進行查詢,市面上也有企信查(企信查)這樣的公司提供了查詢海外企業信息查詢的相關工具。

甚至比如遊戲中的實名註冊,也是採用了對應的API介面才可以實現這個功能。

前一段時間鬧得沸沸揚揚的「阿里屏蔽順豐快遞查詢(順豐對菜鳥關閉數據介面 因數據問題與阿里積怨已久)」事情的背後也有API介面扮演了一定的角色。

總而言之,作為一個普通用戶來說,網站,APP這些東西都是運行在用戶自己的手機和電腦中,而和我們相隔萬里的資料庫和API才是背後實現這一切功能的真正原因。

當然了,上面說的這幾個栗子只是為了幫助大家更好的理解什麼是API,實際情況下API的應用使用邏輯會更加複雜啦。

參考鏈接:

API數據介面_免費數據調用-聚合數據

企信查 - 企業信息,一查便知

企查查-專業的企業信息查詢_公司查詢_企業信用信息查詢_企業工商信息查詢_企業註冊信息查詢_工商登記信息查詢_系統網站


我還是感覺這個匿名朋友說的好理解,但是其他人說的例子也很直觀

-------------------------------------------------------------------------------------------------

你也可以去各大框架的官網去看一看,瞧一瞧,都會有一個大寫的API文字;

用來介紹這個框架的介面與使用場景方法;

哦,原來這就是API;


話說這幾天我也在百度尋找相關的API知識。

我知道API的概念。對與我不懂API的人來說我想我的解釋應該是更能通俗易懂些。

我雖然知道這個概念。但是我的確一點都不知道怎麼用。慚愧的很

舉個例子:

比如求一個圓的面積。我們知道這個圓的半徑。但是我不知道圓的的面積是怎麼算的。

其實:但是老師說。你不用管怎麼算的。我給你個函數 S(r)。下次你把這個半徑填進去。自動會返回這個圓的面積。

這你就不用去了解怎麼算的。你就可以用了

一樣的道理;

一些網站存儲的信息都是以資料庫的形式,

如果想要獲取某些信息。那麼網站提供的數據會以一個類似函數的形式告訴你。你直接用就好了

比如一個人的信息 他會告訴一個API借口。

是一個這樣形式: http://abc.com/index.php?id=****

這個id=***

就你要獲取信息的一個關鍵索引。

那麼這個API 就會傳輸一些數據給你。

什麼這個ID的更多信息,

身高啊、年齡啊、姓名啊、性別啊、身份照這些。

你只要在你的網頁里。調用了這個api

那麼。相當於你就知道了一系列的值,

你只需要直接調用這些變數來完成你所需要的信息。

------------------------------------------

不知道我這樣的理解對不對。但是我想應該是對的。

追問。我知道了 api的介面。還有我的授權key 這些。

我也知道api傳輸過來的數據變數規範。

但是我不知道該怎麼用該在調用這個api 怎麼調用這些變數

哪裡可以學習一下的?

比如在網頁里。

我怎麼申明 這樣的api http://abc.com/index.php?id=****

怎麼調用這個API獲取的一些變數。。

大寫的 求 !


舉個例子:

就例如你去存錢,你把錢放到了銀行的自動存取款機裡面,然後你的錢就會顯示在你的銀行賬戶,這個機子就是介面,至於怎麼給你保存啊,信息的改變啊,信息的顯示啊,你無須知道你只需要把錢放進去就行了,它也可以看做是一個介面。

再舉個例子:

比如說你使用vue koa 寫一個所謂的大前端,然後需要後端,但是你不會寫你就可以調用別人使用比如 golang Java Python 寫好的一些邏輯,然後它告訴你調用什麼請求是返回什麼信息,這樣的就是API介面,比如你不會寫複雜的資料庫邏輯,你直接使用別人寫好的golang介面,然後你就不需要自己寫了,怎麼調用呢?一般會使用http協議或者是tcp協議來書寫,RESTful就是一個種類,你只需要去請求一些URL,那麼這個url就會返回你一個 比如json的一個數據,這樣一個API介面就被你使用了。


-API(Application Programming Interface,應用程序編程介面)是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟體或硬體得以訪問一組常式的能力,而又無需訪問源碼,或理解內部工作機制的細節。

用友APIlink裡面的工商管理就是比較好的API介面


推薦閱讀:

國內提供話費充值API的公司有哪些?
為什麼Google play 沒有手機 QQ 標準版?
Twitter 不再鼓勵第三方客戶端發展,這對我們有什麼「啟示」嗎?
為什麼windows的dll要區分導入導出?
關於APP token驗證的疑問?

TAG:API | 開放API |