什么是API接口?API接口怎么用?計(jì)支寶API開放平臺是啥?
- 版本:計(jì)支寶信息科技有限公司
- 上架時間:2019-01-05
- 服務(wù)商:計(jì)支寶信息科技有限公司
- 咨詢熱線: 400-965-0588
一、什么是API接口?
API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。API 接口屬于一種操作系統(tǒng)或程序接口,而后兩者都屬于直接用戶接口。 有時公司會將 API 作為其公共開放系統(tǒng)。也就是說,公司制定自己的系統(tǒng)接口標(biāo)準(zhǔn),當(dāng)需要執(zhí)行系統(tǒng)整合、自定義和程序應(yīng)用等操作時,公司所有成員都可以通過該接口標(biāo)準(zhǔn)調(diào)用源代碼,該接口標(biāo)準(zhǔn)被稱之為開放式 API。
說到API,往往是和SDK放在一起的。
什么叫API,看一下餐廳里怎么點(diǎn)餐的就行了。
到了飯店,喊一場服務(wù)員,點(diǎn)餐。
服務(wù)員拿出來菜單給你看,你點(diǎn)什么,她在小本本上記什么。
點(diǎn)好了之后,再把菜單送到后廚去。
這里服務(wù)員就是提供服務(wù)的(不然也不叫服務(wù)員),提供什么服務(wù)呢?
點(diǎn)餐服務(wù)。
點(diǎn)餐服務(wù)需要什么呢?
談一個服務(wù),通常就是要談輸入是什么,輸出又是什么。
從眼下這個例子來看,輸入就是一道道菜品的名字(或者是ID,不知道你們見過菜品上面有編號,服務(wù)員只記編號的?),輸出的結(jié)果就是端過來的一道道菜。
有了輸入和輸出,服務(wù)員就可以提供了點(diǎn)餐的功能,這就是API,顧客就是調(diào)用者,服務(wù)員就是服務(wù)的提供者。
你可以在這里把服務(wù)員替換成貓貓,假設(shè)女王大人貓貓來給你提供服務(wù),只要輸出是菜品的名字,輸出是菜品,這個API就是能夠正常使用的。
而且,所有的顧客都可以用這種方式來點(diǎn)菜的~~~
再想想,是不是有的服務(wù)員手里拿的是點(diǎn)餐機(jī)?想想一個漂亮的小姑娘,拿著一個和手機(jī)大小差不多的點(diǎn)餐機(jī),這個點(diǎn)餐機(jī),就是需要和后廚系統(tǒng)有交互,這種交互,就需要一種約束,來聲明點(diǎn)菜功能的輸入是什么,輸出是什么。比如說,如果用戶點(diǎn)了一道已經(jīng)估清的菜,是不是服務(wù)員要告訴顧客一下?
API通常是以Http的形式提供,它隱藏的含義就是,只要你符合我定義的標(biāo)準(zhǔn),你就可以來使用我。
比如說,服務(wù)員是中國姑娘,顧客是美國人,沒關(guān)系,只要美國人能說中國話,這套API就可以使用。如果美國人只會說英語,怎么辦?讓和美國人一起來吃飯的中國朋友翻譯成中文,就可以了~~
那么什么是SDK呢?
當(dāng)美國人不會說中文的時候,飯店里的大堂經(jīng)理來了,他來給美國佬當(dāng)翻譯。這就是SDK,SDK一般都是和語言相關(guān),是官方提供的各種不同語言的實(shí)現(xiàn)版本。
同樣的,我們再把思維模式擴(kuò)大一點(diǎn)。
除了Http這種API,內(nèi)部系統(tǒng)集成的組件,是否也是有API?
你會發(fā)現(xiàn),確實(shí)是這樣的,比如說,JDK本身提供的各種API,在這里,API和SDK的概念沒有那么清楚了,但是API本身的含義就是,當(dāng)服務(wù)的提供方對外提供服務(wù)的時候,應(yīng)該聲明輸入和輸出和功能的明確含義。
而一組組明確聲明了的輸入,輸出和功能描述,就是服務(wù)方提供的各種API。
比如說數(shù)組對外暴露的方法,鏈表對外暴露的方法等等。
那么,API和方法之間有沒有明顯的區(qū)別呢?暴露出去的,可被公開使用的方法,統(tǒng)稱為API~~~
以上解釋不夠嚴(yán)謹(jǐn),但是對于初學(xué)者來說,理解起來應(yīng)該夠了。
如果你在理解API的時候有困難,大概問題并不是在API上,而是你有沒有理解清楚什么叫做封裝,什么叫做服務(wù)?
二、API接口怎么用?
方法一:用前端方法調(diào)用api
完整代碼:
1 <!DOCTYPE html>
2
3 <html lang="en">
4 <head>
5 <meta charset="UTF-8">
6 <title>Title</title>
7 </head>
8 <style>
9
10 </style>
11 <body>
12 <button onclick = request()>tijiao</button>
13 </body>
14 </html>
15 <script>
16 function request() {
17 var xhr = new XMLHttpRequest;
18 xhr.onreadystatechange = function () {
19 if (this.readyState == 0) {
20 console.log("UNSENT open 尚未調(diào)用");
21 } else if (this.readyState == 1) {
22 console.log("OPEND open 已調(diào)用");
23 } else if (this.readyState == 2) {
24 console.log("接收頭消息");
25 } else if (this.readyState == 3) {
26 console.log("接收響應(yīng)主體");
27 } else {
28 console.log(JSON.parse(this.responseText));
29 }
30 };
31 xhr.open('GET', "http://route.showapi.com/90-87?showapi_appid=45300&showapi_sign=c28de9d6f79e44369a9abcd40fa3e277");
32 xhr.send();
33 }
34 </script>
如果你想直接使用我上述代碼,也是可以的,直接復(fù)制就好.
我解釋一下上面的那個url(其實(shí)就是我們調(diào)用的api):
紅色部分: 表示這個api的提供商,不是同一個api,后面的數(shù)字不一樣
綠色部分: 表示這個api的appid,自己申請到api后,都會有自己的appid
黃色部分: 表示這個api的appkye,每個應(yīng)用的appid和appkey申請完,自己都是可以看到的.
然后根據(jù)我上面的格式拼接到一塊兒就可以調(diào)用了.
完整代碼如下:
<?php
header("content-type:text/html;
charset=utf-8");
$fp = fopen("http://route.showapi.com/341-1?showapi_appid=35585&showapi_sign=249e47ff8d5e4bf7b44d55a42e0163ef", "r");
stream_get_meta_data($fp);$result = "";
while (!feof($fp)) {$result .= fgets($fp, 1024);
}echo $result;fclose($fp);
這個是php調(diào)用api的方法,api的拼接和上述一樣,最后的那個棕色的 "r" 意思是只讀模式.
三、計(jì)支寶API開放平臺介紹
計(jì)支寶API開放平臺基于計(jì)支寶生態(tài)體系,旨在為用戶提供更加全面和優(yōu)質(zhì)的服務(wù)。計(jì)支寶將突破現(xiàn)有的產(chǎn)品線來開放API接口,迎接合作伙伴的加入,最大限度滿足用戶的全場景使用體系,將產(chǎn)品價值輸出最大化和最優(yōu)化。
